Como ecoar um caractere TAB em um prompt de comando

21

Em um arquivo em lotes do Windows, qual é a maneira correta de fazer eco a TAB?

echo A<TAB>B<TAB>C

Eu sei que posso digitar o TABcaractere entre as entradas, mas a maioria dos editores o exibirá como uma sequência de espaços. Alguns até os convertem automaticamente em espaços, estou procurando algo mais visual.

Esclarecimento: <TAB> aqui significa o caractere de tabulação real. Estou procurando o the C \ t em um script em lote.

Haas
fonte
Você tentou editores e encontrou a guia de exibição "mais" como uma sequência de espaços? quais são esses? O primeiro editor que eu tentei é o bloco de notas e que exibe guias como guias.
barlop

Respostas:

17

Basta pressionar a TABtecla em um editor que suporta, como o Bloco de Notas.

Então, se eu inserir isso:

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

Isso resultaria em:

insira a descrição da imagem aqui

Tamara Wijsman
fonte
11
Funciona e é assim que estou fazendo. O problema é que qualquer um que edite o arquivo poderá substituir uma guia estranhamente posicionada sem perceber que é intencional.
Haas
5
@ Haas: Que tal set TAB=<TAB>esclarecer que é o caractere de tabulação e depois usá-lo %TAB%depois? Tanto quanto sei, echoapenas analisa %...%. Não há como built-in caractere de tabulação, tanto quanto eu estou ciente de ...
Tamara Wijsman
@barlop: O que ...............? xD
Tamara Wijsman
11
Eu uso a sugestão de Tom Wijsman, mas com citações. SET "TAB= "onde o espaço em branco é realmente um caractere TAB (0x09). É claramente subótimo, mas parece ser a melhor alternativa que já vi.
aceso
Para obter o caractere TAB ao pressionar a tecla TAB, você deve iniciar o prompt de comando como cmd /F:OFFdesativar o preenchimento automático de arquivo / diretório. nomes ...
aschipfl
11

Uma solução é que você pode definir uma variável de ambiente chamada TAB e definir o valor para o caractere de tabulação real. Pode ser necessário copiar e colar o caractere de tabulação de um editor de texto para que ele seja inserido corretamente. Eu tentei isso no Windows 7 e funciona.

No seu arquivo em lotes, basta usar% TAB% e ele inserirá um caractere de tabulação.

Timothy C. Quinn
fonte
3
+1 alguém votou contra você, talvez se essa resposta puder ser encontrada em algum lugar nos comentários. Mas respostas devem ser encontradas nas respostas e não nos comentários, portanto, um upvote de mim
miracle173
3

Limitações como essa estão entre os motivos para usar o Windows Script Host ou o Powershell.

O host de scripts do Windows é enviado (fornecido) com todas as versões do Windows a partir de 98 e pode ser instalado no 95 e no NT 4.

Crie um arquivo chamado demo.vbse cole a seguinte linha nele e salve-o.

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

Agora, no diretório em que você o salvou, digite:

demo.vbs

e você deve ver:

a       b

Você também pode fazer

cscript demo.vbs

o que permitirá que você use as opções de linha de comando cscriptfornecidas.

(Testado no Vista.)

Pausado até novo aviso.
fonte
Powershell seria muito bom, mas não é sempre availible ...
Haas
@ Haas: Por favor, veja minha resposta editada.
Pausado até novo aviso.
Obrigado Dennis. Adoraria usar algo mais novo e melhor, mas é a única opção que tenho para esse script específico.
Haas
@ Haas: Eu apenas pensei que "estou procurando algo mais visual" era um requisito.
Pausado até novo aviso.
1

Aqui está uma solução de uma linha usando o powershell em um arquivo em lotes:

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

o `t é o caractere de tabulação

stangm
fonte
Ah, o PowerShell é um tabu, a menos que alguém já tenha dito isso.
Pacerier 29/07
0

Enquanto estiver usando um editor que mantenha as guias intactas, você poderá fazer o download do sed e colocá-lo no seu caminho e, em seguida, poderá fazer algo como:

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

onde cada um está representando uma tab real.


farfromhome
fonte
-1

A maneira básica, mas não muito conhecida, é enviar TABpara o CMD usando o ASCII chr (9). Este caractere especial pode ser chamado pressionando 9 no teclado numérico enquanto mantém pressionada a tecla ALT Esquerda ao mesmo tempo. Caracteres que parecem O em negrito devem aparecer, caso contrário, algum tipo de codificação ou mapeamento de teclado está ativado.

Se o seu Editor foi definido para codificação ASCII simples ou modo binário, você pode salvar esta sequência em um arquivo. Se você não tiver um, tente digitar CMD:

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

psiedlaczek
fonte
2
Como é melhor / diferente do que apenas pressionar a tecla tab?
Máté Juhász 31/03