nMake - Wie kann man Echo -Befehl erzwingen, um das Registerkartenzeichen auszugeben?
-
18-09-2019 - |
Frage
Wie erzwang ich den Befehl Echo, ein Registerkartenzeichen in ms nmake makefile auszugeben? Die wörtlichen Registerkarten, die nach dem Befehl Echo direkt in eine Zeichenfolge eingefügt wurden, werden von NMAKE entfernt und werden in der Ausgabedatei nicht angezeigt.
all :
@echo I WANT TO OUTPUT THE <TAB> CHARACTER HERE! > output.txt
Lösung
Sie können eine Variable mit verwenden TAB verkohlen. Legen Sie diese Zeilen in Ihre .bat -Datei:
Registerkarte einstellen =STRECE Registerkarte Zeichen aus Ihrer Tastatur
Echo a%tab%b> yourfile.txt
Wenn Sie dies tun, hat YourFile.txt Text aTABb
Andere Tipps
Als Problemumgehung können Sie eine Datei erstellen, die das Registerkarte mit dem Namen input.txt (nicht mit NMake verwendet) enthält und dann:
all :
@copy /b input.txt output.txt
Ich nehme an, Sie haben bereits versucht, die Registerkarte in Zitate einzulegen?
all:
@echo "<TAB>" > output.txt
DOS und Windows haben hässliche Textunterstützung in nativen Batch -Dateien :).
Hier ist eine schöne Möglichkeit, Ihre Aufgabe zu erledigen:
- Installieren Sie den Python -Interpretator
- Schreiben Sie ein einfaches Skript, das das Zeichen mit dem angegebenen Code an die Datei anhängt
- Rufen Sie das Skript an, wo immer Sie wollen :)
Einfaches Skript:
'''
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()
Verwenden dieses Skripts aus der Batch -Datei können Sie eine mögliche Datei im Universum erstellen :)
output.txt:
<<output.txt
I WANT TO OUTPUT THE <TAB> CHARACTER HERE!
<<KEEP
<TAB>
repräsentiert hier natürlich einen wörtlichen Registerkartencharakter.
Ich hatte das gleiche Bedürfnis. Ich habe die Antwort mit den Zitaten rund um den Charakter verwendet und einfach noch einen Schritt weiter gegangen.
{tab} bedeutet, die Registerkarte Tastatur im Texteditor zu drücken.
Setzen tab = "{tab}"
Tab =%Registerkarte "1,1%" setzen
Die zweite Zeile extrahiert das mittlere Zeichen aus der zitierten Zeichenfolge.
Jetzt können Sie die % Tab % Variable mit Echo verwenden und, wie ich vermute, überall dort, wo sie benötigt wird.
Echo %Tab %Dieser Text ist eingerückt, der eine Registerkarte vorausgeht.
Ich vermute, dass diese Technik auch mit anderen Problemfiguren verwendet werden könnte.