Comment puis-je faire écho à un caractère TAB sur une invite de commande


21

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 caractère TABentre 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.


Vous avez essayé les éditeurs et trouvé "la plupart" onglet d'affichage comme une séquence d'espaces? quels sont-ils? Le premier éditeur que j'aurais essayé est le bloc-notes et qui affiche les onglets sous forme d'onglets.
barlop

Réponses:


17

Appuyez simplement sur la TABtouche dans un éditeur qui le prend en charge, le Bloc-notes par exemple.

Donc, si j'entre ceci:

@echo 1<TAB>b
@echo 2<TAB>c

Il en résulterait:

entrez la description de l'image ici


1
Cela fonctionne, et c'est comme ça que je le fais. Le problème est que quiconque modifie le fichier peut remplacer un onglet étrangement positionné sans remarquer qu'il est intentionnel.
Haas

5
@Haas: Qu'en est-il set TAB=<TAB>de clarifier qu'il s'agit du caractère de tabulation et de l'utiliser %TAB%ensuite? Pour autant que je sache, echon'analyse que %...%. Pour autant que je sache, il n'y a pas de caractère de tabulation intégré ...
Tamara Wijsman

@barlop: Quoi ...............? xD
Tamara Wijsman

1
J'utilise la suggestion de Tom Wijsman, mais en citant. SET "TAB= "où l'espace est en fait un caractère TAB (0x09). C'est clairement sous-optimal, mais cela semble être la meilleure alternative que j'ai vue.
allumé le

Pour obtenir le caractère TAB lorsque vous appuyez sur la touche TAB, vous devez démarrer l'invite de commande comme cmd /F:OFFdésactiver la complétion automatique du fichier / dir. noms ...
aschipfl

11

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 qu'il soit correctement saisi. J'ai essayé cela dans Windows 7 et cela fonctionne.

Dans votre fichier batch, utilisez simplement% TAB% et il insérera un caractère de tabulation.


3
+1 sombody vous a voté peut-être si cette réponse se trouve quelque part dans les commentaires. Mais les réponses doivent être trouvées dans les réponses et non dans les commentaires, donc un vote positif de ma part
miracle173

3

De telles limitations sont parmi les raisons d'utiliser Windows Script Host ou Powershell.

Windows Script Host est livré (livré) avec chaque version de Windows à partir de 98 et peut être installé sur 95 et NT 4.

Créez un fichier appelé demo.vbset collez-y la ligne suivante et enregistrez-le.

WScript.StdOut.WriteLine "a" + chr(9) + "b"

Maintenant, à partir du 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 commutateurs de ligne de commande cscriptfournis.

(Testé sur Vista.)


Powershell serait très bien, mais ce n'est pas toujours disponible ...
Haas

@Haas: Veuillez voir ma réponse modifiée.
pause jusqu'à nouvel ordre.

Merci Dennis. J'adorerais utiliser quelque chose de plus récent et de meilleur, mais c'est la seule option que j'ai pour ce script spécifique.
Haas

@Haas: Je pensais juste que "je cherche quelque chose de plus visuel" était une exigence.
pause jusqu'à nouvel ordre.

1

Voici une solution en ligne utilisant PowerShell dans un fichier batch:

Powershell -noprofile -nologo -command Write-Output "a`tb`tc"

le `t est le caractère de tabulation


Ah, PowerShell est tabou à moins que quelqu'un ne l'ait déjà dit.
Pacerier

0

Tant que vous utilisez un éditeur qui garde les onglets intacts, vous pouvez télécharger sed et le mettre sur votre chemin, puis vous pouvez faire quelque chose comme:

echo "A`B`C" | sed 's/\t/<TAB>/g'

où chaque `remplace un véritable onglet.



-1

La méthode de base, mais peu connue, consiste à envoyer TABà CMD en utilisant le code ASCII ordinaire (9). Ce caractère spécial peut être invoqué en appuyant sur 9 sur le clavier numérique tout en maintenant la touche ALT gauche enfoncée en même temps. Un caractère qui ressemble à un O en gras devrait apparaître, sinon une sorte d'encodage ou de mappage de clavier est activé.

Si votre éditeur a été défini sur le codage ASCII ordinaire ou sur le mode binaire, vous pouvez enregistrer cette séquence dans un fichier. Si vous n'en avez pas, essayez de taper CMD:

ECHO a (sequence LALT+9) b > tabchk.bat tabchk.bat


2
En quoi est-il meilleur / différent que d'appuyer simplement sur tabulation?
Máté Juhász
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.