Wie kann ich ein TAB-Zeichen an einer Eingabeaufforderung ausgeben?

21

Was ist in einer Windows-Batchdatei der richtige Weg, um ein Echo zu erstellen TAB?

echo A<TAB>B<TAB>C

Ich weiß, dass ich das TABZeichen zwischen Einträgen eingeben kann, aber die meisten Editoren zeigen es als eine Folge von Leerzeichen an. Einige wandeln sie sogar automatisch in Leerzeichen um, ich suche etwas visuelleres.

Klarstellung: <TAB> Hier ist der eigentliche Tabulatorcharakter gemeint. Ich suche das C \ t in einem Stapelskript.

Haas
quelle
Sie haben Editoren ausprobiert und die Registerkarte "most" als Folge von Leerzeichen gefunden? welche sind das? Der erste Editor, den ich ausprobiert habe, ist der Editor, in dem Registerkarten als Registerkarten angezeigt werden.
Barlop

Antworten:

17

Drücken Sie einfach die TABTaste in einem Editor, der dies unterstützt, z. B. Notepad.

Also, wenn ich das eingebe:

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

Es würde dazu führen:

Bildbeschreibung hier eingeben

Tamara Wijsman
quelle
1
Es funktioniert und ich mache es so. Das Problem ist, dass jeder, der die Datei bearbeitet, möglicherweise einen ungewöhnlich positionierten Tab ersetzt, ohne dass er dies bemerkt.
Haas
5
@Haas: Was ist damit set TAB=<TAB>zu klären, dass es sich um das Tabulatorzeichen handelt und es anschließend zu verwenden %TAB%? Soweit mir bekannt ist, werden echonur Parser verwendet %...%. Soweit mir bekannt ist, gibt es keinen eingebauten Tabulator ...
Tamara Wijsman
@barlop: Was ...............? xD
Tamara Wijsman
1
Ich benutze den Vorschlag von Tom Wijsman, aber mit Zitieren. SET "TAB= "wobei das Leerzeichen tatsächlich ein TAB-Zeichen (0x09) ist. Es ist eindeutig suboptimal, aber es scheint die beste Alternative zu sein, die ich je gesehen habe.
leuchtet
Um das TAB-Zeichen beim Drücken der TAB-Taste zu erhalten, müssen Sie die Eingabeaufforderung starten cmd /F:OFF, um die automatische Vervollständigung von Datei / Verzeichnis zu deaktivieren. Namen ...
aschipfl
11

Eine Lösung besteht darin, dass Sie eine Umgebungsvariable mit dem Namen TAB festlegen und den Wert auf das tatsächliche Tabulatorzeichen festlegen können. Möglicherweise müssen Sie das Tabulatorzeichen aus einem Texteditor kopieren und einfügen, damit es richtig eingegeben wird. Ich habe dies in Windows 7 versucht und es funktioniert.

Verwenden Sie in Ihrer Batch-Datei einfach% TAB% und es wird ein Tabulatorzeichen eingefügt.

Timothy C. Quinn
quelle
3
+1 Jemand hat dich vielleicht abgewählt, wenn diese Antwort irgendwo in den Kommentaren zu finden ist. Aber Antworten sollten in den Antworten und nicht in den Kommentaren zu finden sein, daher eine Gegenstimme von mir
miracle173
3

Einschränkungen wie diese sind einer der Gründe für die Verwendung von Windows Script Host oder Powershell.

Windows Script Host ausgeliefert (Schiffe) mit jeder Windows - Version von 98 auf und kann auf 95 und NT 4 installiert werden.

Erstellen Sie eine Datei mit dem Namen demo.vbsund fügen Sie die folgende Zeile ein und speichern Sie sie.

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

Geben Sie nun aus dem Verzeichnis, in dem Sie es gespeichert haben, Folgendes ein:

demo.vbs

und du solltest sehen:

a       b

Sie können auch tun

cscript demo.vbs

Hiermit können Sie die Befehlszeilenoptionen verwenden, cscriptdie zur Verfügung stehen.

(Getestet unter Vista.)

Bis auf weiteres angehalten.
quelle
Powershell wäre sehr schön, aber es ist nicht immer verfügbar ...
Haas
@Haas: Bitte siehe meine bearbeitete Antwort.
Bis auf weiteres angehalten.
Danke Dennis. Ich würde gerne etwas Neueres und Besseres verwenden, aber es ist die einzige Option, die ich für dieses spezielle Skript habe.
Haas
@Haas: Ich dachte nur, dass "Ich suche etwas visuelleres" eine Voraussetzung ist.
Bis auf weiteres angehalten.
1

Hier ist eine einzeilige Lösung mit Powershell in einer Batch-Datei:

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

Das `t ist das Tabulatorzeichen

stangm
quelle
Ah, Powershell ist tabu, es sei denn, jemand hat es bereits gesagt.
Pacerier
0

Solange Sie einen Editor verwenden, der die Registerkarten intakt hält, können Sie sed herunterladen und auf Ihren Pfad setzen. Anschließend können Sie Folgendes tun:

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

wo jedes `für eine echte Registerkarte steht.


weit weg von zu Hause
quelle
-1

Grundsätzlich, aber nicht allgemein bekannt, ist das Senden TABan CMD unter Verwendung von einfachem ASCII-chr (9). Dieses Sonderzeichen kann durch Drücken von 9 auf der numerischen Tastatur aufgerufen werden, während Sie gleichzeitig die linke ALT-Taste gedrückt halten. Zeichen, die fett O aussehen, sollten angezeigt werden, andernfalls ist eine Art Codierung oder Tastaturzuordnung aktiviert.

Wenn Ihr Editor auf reine ASCII-Codierung oder Binärmodus eingestellt war, können Sie diese Sequenz in einer Datei speichern. Wenn Sie keinen solchen haben, versuchen Sie, CMD einzugeben:

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

psiedlaczek
quelle
2
Wie ist es besser / anders, als nur die Tabulatortaste selbst zu drücken?
Máté Juhász