Sur un fichier batch Windows, quelle est la bonne façon de faire écho à un TAB?
echo A<TAB>B<TAB>C
Je sais que je peux taper le TAB caractère entre les entrées, mais la plupart des éditeurs l’afficheront comme une séquence d’espaces. Certains vont même les convertir automatiquement en espaces, je cherche quelque chose de plus visuel.
Clarification:<TAB>
signifie ici le véritable caractère de tabulation. Je cherche le C\t dans un script batch.
Il suffit de frapper le TAB touchez un éditeur qui le supporte, Notepad par exemple.
Donc, si j'entre ceci:
@echo 1<TAB>b
@echo 2<TAB>c
Il en résulterait ceci:
Une solution consiste à définir une variable d'environnement appelée TAB et à définir la valeur sur le caractère de tabulation réel. Vous devrez peut-être copier et coller le caractère de tabulation à partir d'un éditeur de texte pour le saisir correctement. J'ai essayé ceci dans Windows 7 et cela fonctionne.
Dans votre fichier de commandes, utilisez simplement% TAB% et il insérera un caractère de tabulation.
De telles limitations sont parmi les raisons d'utiliser Windows Script Host ou Powershell.
Windows Script Host a été expédié (livré) avec toutes les versions de Windows à partir de 98 et peut être installé sur 95 et NT 4.
Créez un fichier appelé demo.vbs
et collez la ligne suivante dans celui-ci et enregistrez-le.
WScript.StdOut.WriteLine "a" + chr(9) + "b"
Maintenant, dans le répertoire où vous l'avez enregistré, entrez:
demo.vbs
et vous devriez voir:
a b
Vous pouvez aussi faire
cscript demo.vbs
qui vous permettra d’utiliser les options de ligne de commande fournies par cscript
.
(Testé sur Vista.)
Voici une solution à une ligne utilisant powershell dans un fichier de traitement par lots:
Powershell -noprofile -nologo -command Write-Output "a`tb`tc"
le `t est le caractère de tabulation
Tant que vous utilisez un éditeur qui conserve les onglets intacts, vous pouvez télécharger sed et le mettre sur votre chemin, puis faire quelque chose comme: :
echo "A`B`C" | sed 's/\t/<TAB>/g'
où chaque `correspond à un véritable onglet.