Come faccio ad echo un carattere TAB su un prompt dei comandi


21

Su un file batch di Windows, qual è il modo corretto di echo a TAB?

echo A<TAB>B<TAB>C

So di poter digitare il TABcarattere tra le voci, ma la maggior parte degli editor lo visualizzerà come una sequenza di spazi. Alcuni addirittura li convertiranno automaticamente in spazi, sto cercando qualcosa di più visivo.

Chiarimento: <TAB> qui significa il vero carattere tab. Sto cercando il C \ t in uno script batch.


Hai provato gli editor e hai trovato la scheda di visualizzazione "più" come una sequenza di spazi? quali sono quelli? Il primo editor che avrei provato è il blocco note che visualizza le schede come schede.
barlop

Risposte:


17

Basta premere il TABtasto in un editor che lo supporta, ad esempio Blocco note.

Quindi, se inserisco questo:

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

Ciò comporterebbe questo:

inserisci qui la descrizione dell'immagine


1
Funziona ed è come lo sto facendo. Il problema è che chiunque modifica il file potrebbe sostituire una scheda posizionata in modo strano senza accorgersene intenzionalmente.
Haas,

5
@Haas: Che ne dici set TAB=<TAB>di chiarire che si tratta del carattere di tabulazione e quindi di utilizzarlo %TAB%successivamente? Per quanto ne so, echoanalizza solo %...%. Non esiste un carattere di tabulazione integrato per quanto ne so ...
Tamara Wijsman,

@barlop: che cosa ...............? xD
Tamara Wijsman,

1
Uso il suggerimento di Tom Wijsman, ma citando. SET "TAB= "dove lo spazio bianco è in realtà un carattere TAB (0x09). È chiaramente non ottimale, ma sembra essere la migliore alternativa che abbia mai visto.
acceso il

Per ottenere il carattere TAB quando si preme il tasto TAB, è necessario avviare il prompt dei comandi come cmd /F:OFFdisabilitare il completamento automatico di file / dir. nomi ...
aschipfl,

11

Una soluzione è che puoi impostare una variabile d'ambiente chiamata TAB e impostare il valore sul carattere di tabulazione reale. Potrebbe essere necessario copiare e incollare il carattere di tabulazione da un editor di testo per inserirlo correttamente. Ho provato questo in Windows 7 e funziona.

Nel tuo file batch, usa solo% TAB% e inserirà un carattere tab.


3
+1 sombody ti ha votato verso il basso forse se questa risposta può essere trovata da qualche parte nei commenti. Ma le risposte dovrebbero essere trovate nelle risposte e non nei commenti, quindi un mio
voto

3

Limitazioni come questa sono tra le ragioni per utilizzare Windows Script Host o Powershell.

Windows Script Host è stato fornito (fornito) con ogni versione di Windows da 98 in poi e può essere installato su 95 e NT 4.

Crea un file chiamato demo.vbse incolla la seguente riga e salvalo.

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

Ora, dalla directory in cui l'hai salvato, inserisci:

demo.vbs

e dovresti vedere:

a       b

Puoi anche fare

cscript demo.vbs

che ti consentirà di utilizzare le opzioni della riga di comando che cscriptfornisce.

(Testato su Vista.)


Powershell sarebbe molto carino, ma non è sempre disponibile ...
Haas,

@Haas: vedi la mia risposta modificata.
In pausa fino a nuovo avviso.

Grazie Dennis. Mi piacerebbe usare qualcosa di più nuovo e migliore, ma è l'unica opzione che ho per questo script specifico.
Haas,

@Haas: pensavo solo che "stavo cercando qualcosa di più visivo" era un requisito.
In pausa fino a nuovo avviso.

1

Ecco una soluzione a una riga che usa powershell in un file batch:

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

la `t è il carattere di tabulazione


Ah, PowerShell è un tabù a meno che qualcuno non l'abbia già detto.
Pacerier,

0

Finché stai usando un editor che mantiene intatte le schede, puoi scaricare sed e metterlo sul tuo percorso, quindi puoi fare qualcosa del tipo:

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

dove ogni `sta sostituendo una scheda reale.



-1

Il modo di base, ma non ben noto, è quello di inviare TABa CMD usando semplicemente ASCII chr (9). Questo carattere speciale può essere richiamato premendo 9 sulla tastiera numerica tenendo contemporaneamente premuto ALT-ALT. Dovrebbe apparire un carattere che appare in grassetto O, altrimenti è attiva una sorta di codifica o mappatura della tastiera.

Se il tuo Editor è stato impostato sulla semplice codifica ASCII o sulla modalità binaria, puoi salvare questa sequenza su file. Se non ne hai uno, prova a digitare CMD:

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


2
In che modo è meglio / diverso dalla semplice pressione della scheda stessa?
Máté Juhász,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.