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
War es hilfreich?

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:

  1. Installieren Sie den Python -Interpretator
  2. Schreiben Sie ein einfaches Skript, das das Zeichen mit dem angegebenen Code an die Datei anhängt
  3. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top