Immer wenn Sie etwas in die Befehlszeile eingeben und die Taste drücken Enter Geben Sie einen Schlüssel ein oder fügen Sie einen Befehl in eine Batchdatei ein, an die Sie einen Befehl übergeben TCC, die bestimmen muss, wie es ausgeführt wird. Wenn Sie den allgemeinen Prozess verstehen, können Sie die Befehle optimal nutzen. Das Verständnis dieser Schritte kann besonders hilfreich sein, wenn Sie mit komplexen Aliasnamen oder Batchdateibefehlen arbeiten.

 

TCC-RT durchläuft beim Parsen einer Befehlszeile mehrere Schritte. Bevor es startet, schreibt es die gesamte Befehlszeile (die möglicherweise Folgendes enthält). mehrere Befehle) in die Verlaufsprotokolldatei, wenn die Verlaufsprotokollierung aktiviert wurde (mit dem LOG /H Befehl) und der Befehl stammte nicht aus einer Batchdatei. Der erste Befehl wird dann für die Verarbeitung isoliert. Die folgenden Schritte beschreiben die grundlegende Verarbeitung, die für jeden Befehl erforderlich ist. Während dieser Verarbeitung können wie angegeben zusätzliche Parsing-Aufgaben ausgelöst werden und einige Schritte können mehrmals wiederholt werden.

 

1.Den Befehl von seinem Ende trennen

 

TCC-RT beginnt mit der Aufteilung des Befehls in einen Befehl Name und ein Befehl Schwanz. Der Befehlsname ist das erste Wort im Befehl und das Ende ist alles, was auf den Befehlsnamen folgt. Zum Beispiel in der Kommandozeile

 

dir *.txt /2/p/v

 

Der Befehlsname ist dir, und der Befehlsende ist „*.txt /2/p/v". In einigen Fällen kann der Parser falsche Syntax verstehen, z dir/w, aber zwischen dem Befehlsnamen und seinen Parametern sollte immer mindestens ein Leerzeichen stehen.

 

2.Aliase erweitern

 

Nächstes TCC-RT versucht, den Befehlsnamen mit seiner Liste abzugleichen Aliase. Wenn eine Übereinstimmung zwischen dem Befehlsnamen und einem der von Ihnen definierten Aliase gefunden wird, ersetzt es den Befehlsnamen durch den Inhalt des Alias.

 

Wenn der Alias ​​Parameter (%1, %2 usw.) enthielt, werden die Parameterwerte aus dem Text in der Befehlszeile eingefügt und alle in diesem Prozess verwendeten Parameter werden aus der Befehlszeile entfernt. Der Vorgang, einen Befehlsnamen, der auf einen Alias ​​verweist, durch den Inhalt des Alias ​​zu ersetzen und die Alias-Parameter einzugeben, wird als Alias ​​bezeichnet Erweiterung.

 

Durch diese Erweiterung eines Alias ​​wird ein neuer Befehlsname erstellt: das erste Wort des Alias. Dieser neue Befehlsname wird erneut mit der Liste der Aliase verglichen, und wenn eine Übereinstimmung gefunden wird, wird der Inhalt des neuen Alias ​​genauso erweitert wie der erste Alias. Dieser Vorgang wird als verschachtelt bezeichnet alias Die Erweiterung wird fortgesetzt, bis der Befehlsname nicht mehr auf einen Alias ​​verweist.

 

3.Variablen erweitern

 

Der nächste Schritt besteht darin, alle Batchdateiparameter, Umgebungsvariablen, internen Variablen oder Variablenfunktionen im Befehl zu suchen und sie jeweils durch ihren Wert zu ersetzen (siehe „Umgebung: Variablen und Funktionen").

 

Der Variablenerweiterungsprozess wird für bestimmte interne Befehle geändert, z AUSSER, IF und GLOBAL. Auf diese Befehle folgt immer ein weiterer Befehl, daher erfolgt die Variablenerweiterung getrennt für den ursprünglichen Befehl und den darauf folgenden Befehl.

 

4.Identifizieren eines Plugins oder internen Befehls

 

Sobald die Variablenerweiterung abgeschlossen ist, TCC-RT versucht als nächstes, den resultierenden Befehlsnamen mit seiner Liste abzugleichen Plugin Befehle oder interne Befehle. Wenn dies nicht gelingt, weiß es, dass es nach einer Batchdatei oder einem externen Programm suchen muss, um Ihren Befehl auszuführen.

 

Sie können ein bestimmtes Plugin zur Ausführung angeben, indem Sie dem Funktions-/Variablen-/Befehlsnamen den Plugin-Namen und ein $ voranstellen. Zum Beispiel:

 

echo %_myplugin$variable

echo %@myplugin$func[abc]

meinplugin$mycommand

 

5.Befehl anzeigen

 

Wenn alle Aliase und Umgebungsvariablen erweitert wurden, TCC-RT gibt den vollständigen Befehl als Echo auf dem Bildschirm aus (wenn das Befehlszeilen-Echo aktiviert wurde) und schreibt ihn in die Protokolldatei (wenn command Protokollierung eingeschaltet wurde).

 

6.Verarbeitungsumleitung und Verrohrung

 

Bevor Ihr Befehl tatsächlich ausgeführt werden kann, TCC-RT muss das Befehlsende scannen, um festzustellen, ob es Folgendes enthält Umleitung or Rohrleitungen. Wenn dies der Fall ist, werden die entsprechenden internen Schalter so eingestellt, dass die Ausgabe an ein alternatives Gerät oder an eine Datei statt an den Bildschirm gesendet wird. An dieser Stelle wird bei Bedarf ein zweiter Prozess gestartet, um die über die Pipeline weitergeleitete Ausgabe zu empfangen.

 

7.Escape-Zeichen verarbeiten

 

Zu diesem Zeitpunkt sind noch alle verbleibenden vorhanden Fluchtzeichen verarbeitet werden. Dies könnte jedoch auch bereits innerhalb einiger Variablenfunktionen geschehen sein (z. B @WENN), die wahrscheinlich maskierte Zeichenfolgen in ihren Parametern übergeben. Wenn Sie sich auf eines davon in einem beziehen ECHO oder einen ähnlichen Befehl, müssen Sie zweimal entkommen ("^^") oder verwenden SETDOS /X um eine vorzeitige Bewertung zu vermeiden. Testen Sie diese Situationen sorgfältig, um sicherzustellen, dass die Ergebnisse Ihren Absichten entsprechen.

 

8.Ausführen des Befehls

 

Schließlich ist es Zeit, den Befehl auszuführen. TCC-RT sucht zunächst nach einer Übereinstimmung Plugin Befehlsname; Wenn es nicht existiert, wird versucht, einen internen Befehl zu finden. Ansonsten, TCC-RT sucht nach einer ausführbaren Datei (. EXE)-Datei, eine Batchdatei oder eine Datei mit einer ausführbaren Erweiterung, die dem Befehlsnamen entspricht (siehe die ausführliche Beschreibung dieser Suche in Ausführbare Dateien und Dateisuchen).

 

Wenn das erste Argument in einer Befehlszeile das Format „env_var=value command options“ hat (und env_var=value nicht mit einem externen Befehl übereinstimmt), dann TCC-RT setzt die angegebene Umgebungsvariable auf den Wert, führt den Befehl aus und entfernt dann die Variable.

 

9.Aufräumen

 

Sobald der interne Befehl oder das externe Programm beendet ist, TCC-RT Speichert das Ergebnis oder den Exit-Code, den der Befehl generiert hat, bereinigt alle von Ihnen angegebenen Umleitungen und kehrt dann zur ursprünglichen Befehlszeile zurück, um den nächsten Befehl abzurufen. Wenn alle Befehle in einer Befehlszeile abgeschlossen sind, wird die nächste Zeile aus der aktuellen Batchdatei gelesen. Wenn keine Batchdatei aktiv ist, wird die Eingabeaufforderung angezeigt.

 

Hinweis: Sie können mehrere Teile der Befehlsanalyse (z. B. Aliaserweiterung, Variablenerweiterung und Umleitung) mit deaktivieren und wieder aktivieren SETDOS /X Befehl.