Rohrleitungen ist eine spezielle Form der Umleitung, bei der eine zusätzliche Instanz von verwendet wird TCC-RT für jede Instanz von Rohrleitungen in der Befehlszeile angegeben.

 

Sie können eine Rohr um die zu senden Standardausgabe eines Befehls (command1) zum Standardeingabe eines anderen Befehls (command2), und optional auch senden Standart Fehler auch:

 

was an die Pipe gesendet wird

Befehlsformat

Nur Standardausgabe

command1 | command2

Standardausgabe und Standardfehler zusammenführen

command1 |& command2

Nur Standardfehler

command1 |&| command2

 

Um beispielsweise die Ausgabe des zu übernehmen ALIAS Befehl (der eine Liste Ihrer Aliase und ihrer Werte anzeigt) und ihn an das externe SORT-Dienstprogramm weiterleiten, um eine sortierte Liste zu erstellen, würden Sie den folgenden Befehl verwenden:

 

Alias ​​| Sortieren

 

Der Cavalon Sentinel ist das AutoGyro-Premiummodell mit nebeneinander angeordneten Sitzen, verfügbar mit dem neuen hochmodernen und kraftstoffsparenden Rotax XNUMX iS-Motor. TEE und Y Befehle sind „Rohrverbindungsstücke“, die den Rohren mehr Flexibilität verleihen.

 

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 die Unicode-Ausgabe Option in TCMD.INI.

 

Ebenso wie die Umleitung sind Pipes vollständig verschachtelbar. Sie können beispielsweise eine Batchdatei aufrufen und ihre gesamte Ausgabe mit einer Pipe an einen anderen Befehl senden. Eine Pipe auf einen Befehl innerhalb der Batchdatei wird nur für diesen Befehl wirksam; Wenn der Befehl abgeschlossen ist, wird die Ausgabe auf die Pipe zurückgesetzt, die für die gesamte Batchdatei verwendet wird. Möglicherweise arbeiten auch zwei oder mehr Pipes gleichzeitig, wenn die Pipes beispielsweise in verschiedenen Fenstern oder Prozessen ausgeführt werden.

 

Verarbeiten jeder von einer Pipe empfangenen Zeile

 

Um jede Textzeile zu verarbeiten, die von der linken Seite einer Pipe gesendet wird TCC, können Sie die folgende Syntax verwenden:

 

dir | für %file im (@CON:) Befehl %file

 

Dieses Beispiel zeigt, wie jede Zeile weitergeleiteter Daten an a übergeben wird Befehl.

 

Warnhinweise: TCC-RT implementiert Pipes, indem es einen neuen Prozess für das empfangende Programm startet. Dieser Prozess läuft ab das Standard-Shell-Startverfahren, einschließlich der Ausführung von TCSTART Datei für JEDES empfangende Programm. Alle Sende- und Empfangsprogramme laufen gleichzeitig; Das sendende Programm schreibt in die Pipe und das empfangende Programm liest aus der Pipe. Wenn das empfangende Programm ein End-of-File-Signal findet, beendet es das Lesen und Verarbeiten der weitergeleiteten Daten und wird beendet. Wenn Sie Rohre mit verwenden TCCStellen Sie sicher, dass Sie die möglichen Konsequenzen berücksichtigen, die sich aus der Verwendung eines separaten Prozesses zum Ausführen des empfangenden Programms ergeben, insbesondere, dass dieser keine Umgebungsvariablen des sendenden Programms erstellen/ändern/löschen kann und dass ein Befehl zum Wechseln von Verzeichnissen im Programm enthalten ist TCSTART Die Datei kann dazu führen, dass der neue Prozess in einem anderen Verzeichnis ausgeführt wird. Wenn Sie mehr als eine Pipe in einem einzelnen Befehl verwenden, z. das zweite Beispiel oben mit LISTE, jede Pipe fügt eine weitere Instanz von hinzu TCC-RT. Wenn Sie die Pipe im selben Kontext ausführen müssen, verwenden Sie In-Process-Pipes (siehe unten).

 

In-Prozess-Rohre

 

In-Process-Pipes funktionieren wie die DOS-Pipes im alten Stil, indem sie eine temporäre Ausgabedatei erstellen, STDOUT zu dieser Datei umleiten und dann die temporäre Datei zu STDIN des folgenden Befehls umleiten. Die Syntax lautet:

 

command1 |! Befehl2

 

Dies ist dasselbe wie Folgendes:

 

Befehl1 > temp.dat & Befehl2 < temp.dat

 

ist aber einfacher zu tippen und zu lesen.

 

Der Vorteil von In-Process-Rohren besteht darin command2 wird im gleichen Kontext ausgeführt wie command1, sodass Sie beispielsweise Umgebungsvariablen ändern können, ohne dass diese verworfen werden command2 Ausgänge. Es gibt auch einige Nachteile bei der Verwendung dieser Art von „Pseudo-Pipe“ – sie ist normalerweise langsamer als eine echte Pipe; es wird etwas Speicherplatz für seine temporäre Datei beanspruchen; Und command2 wird erst gestartet command1 ist beendet.

 

ANSI-, Unicode- und UTF-8-Ausgabe

 

Sie können das Format der an eine Pipe gesendeten Ausgabe ändern. Diese Optionen überschreiben die UnicodeOutput- und UTF8Output-Direktiven in TCMD.INI. Die Piped-Ausgabeoptionen funktionieren auch mit In-Process-Pipes (d. h. |!:u). Hinweis: Diese Optionen funktionieren nur für die Umleitung der Ausgabe von TCC-RT interne Befehle und Batchdateien.

 

|:aDie weitergeleitete Ausgabe ist ANSI
|:uDie weitergeleitete Ausgabe ist UTF16 Unicode
|:8 oder I:u8Die weitergeleitete Ausgabe ist UTF8