¿Cómo hago eco de un TAB char en un símbolo del sistema?

21

En un archivo por lotes de Windows, ¿cuál es la forma correcta de hacer eco de un TAB?

echo A<TAB>B<TAB>C

Sé que puedo escribir el TABcarácter entre las entradas, pero la mayoría de los editores lo mostrarán como una secuencia de espacios. Algunos incluso los convertirán automáticamente en espacios, estoy buscando algo más visual.

Aclaración: <TAB> aquí significa la pestaña real char. Estoy buscando el C \ t en un script por lotes.

Haas
fuente
¿Intentó con los editores y encontró "la mayoría" de la pestaña de visualización como una secuencia de espacios? cuales son esos El primer editor que he probado es el bloc de notas y muestra las pestañas como pestañas.
barlop

Respuestas:

17

Simplemente presione la TABtecla en un editor que lo admita, por ejemplo, el Bloc de notas.

Entonces, si ingreso esto:

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

Resultaría en esto:

ingrese la descripción de la imagen aquí

Tamara Wijsman
fuente
1
Funciona, y así es como lo estoy haciendo. El problema es que cualquiera que edite el archivo podría reemplazar una pestaña con una posición extraña sin darse cuenta de que es intencional.
Haas
55
@Haas: ¿Qué hay set TAB=<TAB>de aclarar que es el carácter de tabulación y luego usarlo %TAB%después? Que yo sepa, echosolo analiza %...%. No hay ningún carácter de tabulación incorporado hasta donde yo sé ...
Tamara Wijsman
@barlop: ¿Qué ...............? xD
Tamara Wijsman
1
Utilizo la sugerencia de Tom Wijsman, pero con citas. SET "TAB= "donde el espacio en blanco es en realidad un carácter TAB (0x09). Es claramente subóptimo, pero parece ser la mejor alternativa que he visto.
encendido
Para obtener el carácter TAB al presionar la tecla TAB, debe iniciar el símbolo del sistema cmd /F:OFFpara deshabilitar la finalización automática del archivo / directorio. nombres ...
aschipfl
11

Una solución es que puede establecer una variable de entorno llamada TAB y establecer el valor en el carácter de tabulación real. Es posible que deba copiar y pegar el carácter de tabulación de un editor de texto para que se ingrese correctamente. He intentado esto en Windows 7 y funciona.

En su archivo por lotes, simplemente use% TAB% e insertará un carácter de tabulación.

Timothy C. Quinn
fuente
3
+1 sombody te rechazó tal vez si esta respuesta se puede encontrar en algún lugar de los comentarios. Pero las respuestas deben encontrarse en las respuestas y no en los comentarios, por lo tanto, un voto positivo de mi parte
milagro173
3

Limitaciones como esta son algunas de las razones para usar Windows Script Host o Powershell.

Windows Script Host se envió (se envía) con cada versión de Windows a partir de 98 y se puede instalar en 95 y NT 4.

Cree un archivo llamado demo.vbsy pegue la siguiente línea en él y guárdelo.

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

Ahora, desde el directorio donde lo guardó, ingrese:

demo.vbs

y deberías ver:

a       b

Tambien puedes hacer

cscript demo.vbs

que le permitirá utilizar los modificadores de línea de comando que cscriptproporciona.

(Probado en Vista).

Pausado hasta nuevo aviso.
fuente
Powershell sería muy agradable, pero no siempre está disponible ...
Haas
@ Haas: por favor vea mi respuesta editada.
Pausado hasta nuevo aviso.
Gracias Dennis Me encantaría usar algo más nuevo y mejor, pero es la única opción que tengo para este script específico.
Haas
@Haas: Solo pensé que "estoy buscando algo más visual" era un requisito.
Pausado hasta nuevo aviso.
1

Aquí hay una solución de una línea que usa powershell en un archivo por lotes:

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

la `t es el caracter de tabulación

estancamiento
fuente
Ah, PowerShell es tabú a menos que alguien ya lo haya dicho.
Pacerier
0

Mientras utilice un editor que mantenga intactas las pestañas, puede descargar sed y ponerlo en su camino, y luego puede hacer algo como:

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

donde cada `representa una pestaña real.


lejos de casa
fuente
-1

La forma básica, pero no bien conocida, es enviar TABa CMD utilizando ASCII chr (9). Este carácter especial se puede invocar presionando 9 en el teclado numérico mientras se mantiene ALT-Izquierda al mismo tiempo. Deben aparecer caracteres que parecen O en negrita; de lo contrario, se activará algún tipo de codificación o asignación de teclado.

Si su editor se configuró en codificación ASCII simple o en modo binario, puede guardar esta secuencia en un archivo. Si no tiene uno, intente escribir CMD:

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

psiedlaczek
fuente
2
¿Cómo es mejor / diferente que simplemente presionar la pestaña?
Máté Juhász