Die Umleitung kann verwendet werden, um die Standardeingabe neu zuzuweisen (Standard), Standardausgabe (stdout), und Standardfehler (stderr) Geräte von ihren Standardeinstellungen (Tastatur und Bildschirm) auf ein anderes Gerät wie NUL oder einen seriellen Anschluss, in eine Datei oder auf die Windows Zwischenablage. Wenn Sie die Umleitung mit einem Gerät verwenden, müssen Sie etwas Diskretion walten lassen.

 

Die Umleitung gilt immer für einen bestimmten Befehl und dauert nur für die Dauer dieses Befehls. Wenn der Befehl beendet ist, werden die Zuweisungen für Standardeingabe, Standardausgabe und Standardfehler auf die Werte vor dem Befehl zurückgesetzt.

 

TCCDie Ausgabe erfolgt normalerweise in ANSI. Wenn Sie die Ausgabe in Unicode umleiten möchten, müssen Sie entweder die verwenden /U-Startoption in TCCOder das Unicode-Ausgabe Option in TCMD.INI.

 

In den folgenden Beschreibungen Dateinamen bedeutet entweder den Namen einer Datei oder eines entsprechenden Geräts (MIT für Tastatur und Bildschirm; CLIPS: (oder CLIP0: - CLIP9:) für die Zwischenablage; NUL für das „Null“-Gerät usw.).

 

Hier sind die Standardumleitungsoptionen, die von unterstützt werden TCC (Weitere Umleitungsoptionen mit numerischen Dateihandles finden Sie weiter unten):

 

Ein Schritt        Eingabeumleitung

Ein Schritt        Ausgabeumleitung

Ein Schritt        Besondere Überlegungen für bestimmte Befehle

Ein Schritt        NoClobber

Ein Schritt        Mehrere Umleitungen

Ein Schritt        Erstellen einer leeren Datei

Ein Schritt        Umleitung per Handle

Ein Schritt        „Hier-Dokument“-Umleitung

Ein Schritt        „Here-string“-Umleitung

 

Eingabeumleitung

 

< DateinamenUm Eingaben von einer Datei oder einem Gerät statt von der Tastatur zu erhalten.

 

Ausgabeumleitung

 


überschreiben

anhängen

Standardausgabe

>  Dateiname

>>   Dateiname

Standart Fehler

>&> Dateiname

>>&> Dateiname

Standardausgabe und Standardfehler zusammenführen

>&  Dateiname

>>&  Dateiname

 

Um die Umleitung zu verwenden, platzieren Sie das Umleitungssymbol und Dateinamen am Ende der Befehlszeile, nach dem Befehlsnamen und etwaigen Parametern. Um beispielsweise die Ausgabe des umzuleiten DIR Befehl an eine Datei namens DIRLISTE, könnten Sie eine Befehlszeile wie diese verwenden:

 

dir /b *.dat > dirlist

 

Sie können je nach Zweck eine beliebige Kombination aus Eingabe- und Ausgabeumleitung für denselben Befehl verwenden. Dieser Befehl sendet beispielsweise Eingaben an das externe Programm SORT aus der Datei DIRLISTEund sendet die Ausgabe von SORT in die Datei DIRLIST.SRT:

 

sort dirlist.srt

 

Sie können Text zum oder vom umleiten Windows Zwischenablage mithilfe des Pseudogerätenamens CLIPS: (Der Doppelpunkt ist erforderlich). Die Umleitung in die Zwischenablage erfolgt immer mit UTF16 Unicode.

 

Wenn Sie die Ausgabe eines einzelnen internen Befehls wie umleiten DIR, endet die Umleitung automatisch, wenn dieser Befehl ausgeführt wird. Wenn Sie eine Batchdatei mit Umleitung starten, wird die gesamte Ausgabe der Batchdatei umgeleitet und die Umleitung endet, wenn die Batchdatei fertig ist. Ähnlich verhält es sich, wenn Sie die Umleitung nach der schließenden Klammer von a verwenden Befehlsgruppe (z.B., ...) > Bericht), wird die gesamte Ausgabe der Befehlsgruppe umgeleitet und die Umleitung endet, wenn die Befehlsgruppe fertig ist.

 

Sie können das Format der umgeleiteten Ausgabe ändern. Diese Optionen überschreiben die UnicodeOutput- und UTF8Output-Direktiven in TCMD.INI. Hinweis: Diese Optionen funktionieren nur für die Umleitung der Ausgabe von TCC interne Befehle und Batchdateien.

 

>:aDie umgeleitete Ausgabe (STDOUT und/oder STDERR) ist ANSI (8-Bit-Zeichen).
>:uDie umgeleitete Ausgabe ist UTF16 Unicode
>:8 oder >:u8Die umgeleitete Ausgabe ist UTF8

 

>>:aAngehängte umgeleitete Ausgabe (STDOUT und/oder STDERR) ist ANSI (8-Bit-Zeichen)
>>:uDie angehängte umgeleitete Ausgabe ist UTF16 Unicode
>>:8 oder >>:u8Die angehängte umgeleitete Ausgabe ist UTF8

 

Besondere Überlegungen für bestimmte Befehle

 

Sie können nicht alle Ausgaben aus der Ausführung von a umleiten DO Schleife aufgrund der Einschränkung, dass die DO Befehl und seine Übereinstimmung ENDDO darf nicht Teil einer Befehlsgruppe sein.

 

Um die Ausgabe von a umzuleiten TEXT Fügen Sie dem Befehl die Umleitungssyntax hinzu TEXT Befehl.

 

Wenn Sie a ausführen FÜR or GLOBAL Befehl wird die Umleitung für jede Iteration separat durchgeführt, basierend auf dem für diese Iteration aktuellen Verzeichnis. Dies kann dazu führen, dass die Ausgabedatei wiederholt überschrieben wird oder in jedem Verzeichnis eine separate Ausgabedatei erstellt wird. Um eine einzelne, kumulative Ausgabedatei zu generieren, verwenden Sie Befehlsgruppierung wie im folgenden Beispiel:

 

( für /r %f in (*.btm) echo %@full[%f] ) > c:\temp\btmlst

 

NoClobber

 

Wenn die Ausgabe in eine Datei mit geleitet wird >, >&, oder >&>, und diese Datei bereits existiert, wird sie überschrieben. Sie können vorhandene Dateien schützen, indem Sie die verwenden SETDOS /N1-Befehl, der Schützen Sie umgeleitete Ausgabedateien Einstellung auf der Registerkarte Start der Konfigurationsdialoge, bzw Umgeleitete Ausgabedatei schützen .

 

Wenn die Ausgabe an eine Datei angehängt wird mit >>, >>>, oder >>&>, wird die Datei erstellt, sofern sie noch nicht vorhanden ist. Wenn jedoch der NoClobber-Modus wie oben beschrieben eingestellt ist, wird durch die Anhängeumleitung keine neue Datei erstellt; Wenn die Ausgabedatei nicht vorhanden ist, wird stattdessen die Fehlermeldung „Datei nicht gefunden“ oder ein ähnlicher Fehler angezeigt.

 

Sie können die aktuelle Einstellung von NoClobber vorübergehend überschreiben, indem Sie ein Ausrufezeichen verwenden [!] nach dem Umleitungssymbol. Beispielsweise um die Ausgabe von DIR in die Datei umzuleiten DIROUT, und erlauben Sie das Überschreiben aller vorhandenen Dateien trotz der NoClobber-Einstellung:

 

dir >! dirout

 

Mehrere Umleitungen

 

Die Umleitung ist vollständig verschachtelbar. Sie können beispielsweise eine Batchdatei aufrufen und deren gesamte Ausgabe an eine Datei oder ein Gerät umleiten. Die Ausgabeumleitung für einen Befehl innerhalb der Batchdatei wird nur für diesen Befehl wirksam. Wenn der Befehl abgeschlossen ist, wird die Ausgabe auf die umgeleitete Ausgabedatei oder das umgeleitete Gerät zurückgesetzt, das für die Batchdatei als Ganzes verwendet wird.

 

Erstellen einer leeren Datei

 

Mithilfe der Umleitung können Sie eine leere Datei (null Byte) erstellen. Geben Sie dazu ein >Dateiname als Befehl, ohne eigentlichen Befehl vor dem > Charakter. Wenn Sie aktiviert haben Umgeleitete Ausgabedatei schützen, benutzen Sie >!Dateiname.

 

Umleitung per Handle

 

Zusätzlich zu den oben genannten Umleitungsoptionen: TCC unterstützt auch die CMD Syntax:

 

n>DateiUmleitungshandle n in die benannte Datei
n>&mUmleitungshandle n an der gleichen Stelle wie der Griff m

 

Warnung: Es dürfen keine Leerzeichen dazwischen stehen n und dem >, oder zwischen den >, & und m in der zweiten Form. Die Werte von n und m müssen einzelne Dezimalstellen sein und Dateihandles darstellen. Windows definiert 0, 1 und 2 wie in der folgenden Tabelle gezeigt.

 

Handle

Zuordnung

0

Standardeingabe

1

Standardausgabe

2

Standart Fehler

 

Das n>Datei Die Syntax leitet die Ausgabe vom Handle um n zu Datei. Mit diesem Formular können Sie zwei Handles an verschiedene Orte umleiten. Zum Beispiel:

 

dir > outfile 2 > errfile

 

Sendet die normale Ausgabe an eine Datei namens AUSGABE und alle Fehlermeldungen zu einer Datei namens FEHLERDATEI.

 

Das n>&m Syntax-Umleitungshandle n an das gleiche Ziel wie das zuvor zugewiesene Handle m. Um beispielsweise die Standardfehlerausgabe an dieselbe Datei wie die Standardausgabe zu senden, können Sie diesen Befehl verwenden:

 

dir > outfile 2>&1

 

Beachten Sie, dass Sie dieselben Vorgänge mithilfe der Standardumleitungsfunktionen ausführen können. Die beiden obigen Beispiele könnten wie folgt geschrieben werden:

 

dir > outfile >&> errfile

 

und

 

dir >& outfile

 

„Hier-Dokument“-Umleitung

 

Überall dort, wo die Eingabeumleitung unterstützt wird, können Sie einen Linux-ähnlichen „Here-Document“-Ansatz verwenden. Die Syntax lautet:

 

Programm << Wort

 

Die aktuelle Batchdatei wird bis zum nächsten Auftreten von gelesen Wort, und der resultierende Text wird zur Standardeingabe für Programm. Zum Beispiel:

 

c:\test\program.exe << endinput

Eingabe 1

Eingabe 2

Eingabe 3

Endeingabe

echo Dies ist die nächste Zeile nach „program.exe“

 

Besonderheiten von „here document“:

 

Besitzt das << gefolgt von einem Bindestrich (-), wird der führende Leerraum in den folgenden Zeilen entfernt, bevor sie an übergeben werden Programm (d. h. sie werden effektiv linksbündig ausgerichtet).

 

Der Parser führt in jeder Zeile eine Variablenerweiterung durch, es sei denn, das Wort folgt << wird in doppelte Anführungszeichen gesetzt.

 

„Here-string“-Umleitung

 

Mit dem „Here-String“ können Sie String-Text direkt an die Eingabe eines Programms senden. Die Syntax lautet:

 

Programm <<< Zeichenfolge

 

Dies ähnelt der Verwendung KEYSTACK, aber einfacher für die Texteingabe einzugeben. (Wenn Sie spezielle Schlüssel senden oder Wartezeiten einfügen müssen, müssen Sie KEYSTACK verwenden.)  Um beispielsweise eine Zeichenfolge an die Standardeingabe des Programms zu senden:

 

c:\test\program.exe <<< Dies ist ein Eingabetext.