NMAKE - ¿Cómo forzar el comando echo para emitir el carácter de pestaña?
-
18-09-2019 - |
Pregunta
¿Cómo forzar el comando echo a emitir un carácter de pestaña en MS nmake makefile? Las pestañas literales insertadas directamente en una cadena después del comando ECHO se eliminan por nmake y no se muestran en el archivo de salida.
all :
@echo I WANT TO OUTPUT THE <TAB> CHARACTER HERE! > output.txt
Solución
Puedes usar una variable con PESTAÑA carbonizarse. Pon estas líneas en su archivo .bat:
establecer tab =Tab de carrera Char desde su teclado
Echo A%Tab%b> YourFile.txt
Al hacerlo, yourfile.txt tendrá texto unPESTAÑAb
Otros consejos
Como solución alternativa, puede crear un archivo que contenga el carácter de pestaña, llamado input.txt (no usando nmake) y luego decir:
all :
@copy /b input.txt output.txt
Supongo que ya ha intentado poner la pestaña Inside Cotes.
all:
@echo "<TAB>" > output.txt
DOS y Windows tienen soporte de texto feo en archivos de lotes nativos :).
Aquí hay una buena manera de hacer tu tarea:
- Instalar Python Interpretator
- Escriba un script simple que agrega el carácter con el código especificado en el archivo
- Llame al script donde quiera :)
Script simple:
'''
append_char.py - appends character with specified code to end of file
Usage: append_char.py filename charcode
'''
import os
import sys
filename = sys.argv[1]
assert os.path.exists(filename)
charcode = int(sys.argv[2])
assert 0 <= charcode <= 255
fh = open(filename, 'ab')
fh.seek(0, os.SEEK_END)
fh.write(chr(charcode))
fh.close()
Usando este script desde el archivo por lotes, puede crear cualquier archivo posible en el universo :)
output.txt:
<<output.txt
I WANT TO OUTPUT THE <TAB> CHARACTER HERE!
<<KEEP
<TAB>
representa un personaje de pestaña literal aquí, por supuesto.
Tenía la misma necesidad. Usé la respuesta usando las citas alrededor del personaje y la llevé un paso más allá.
{Tab} significa presionar la tecla de tabla del teclado en el editor de texto.
Establecer tab = "{tab}"
Establecer pestaña =%pestaña: ~ 1,1%
La segunda línea extrae el carácter central de la cadena citada.
Ahora puede usar la variable % Tab % con Echo y, sospecho, en cualquier otro lugar es necesario.
Echo %pestaña %Este texto está sangrado, precedido por una pestaña.
Sospecho que esta técnica también podría usarse con otros caracteres problemáticos.