Immer wenn Sie etwas in die Befehlszeile eingeben und die  Eingabetaste drücken  oder einen Befehl in eine Stapeldatei aufnehmen, übergeben Sie einen Befehl an TCCweiter, das entscheiden muss, wie es ausgeführt werden soll. Wenn Sie den allgemeinen Prozess verstehen, der verwendet wird, können Sie die Befehle optimal nutzen. Das Verständnis dieser Schritte kann besonders hilfreich sein, wenn Sie mit komplexen Aliasen oder Batch-Datei-Befehlen arbeiten.

 

TCC durchläuft beim Parsen einer Befehlszeile mehrere Schritte. Vor dem Start wird die gesamte Befehlszeile (die mehrere Befehle enthalten kann ) in die Verlaufsprotokolldatei  geschrieben , wenn die Verlaufsprotokollierung aktiviert wurde (mit dem Befehl LOG /H ) und der Befehl nicht aus einer Stapeldatei stammt. Der erste Befehl wird dann für die Verarbeitung isoliert. Die folgenden Schritte skizzieren die grundlegende Verarbeitung, die für jeden Befehl erforderlich ist. Während dieser Verarbeitung können zusätzliche Parsing-Aufgaben ausgelöst werden, und einige Schritte können mehrfach wiederholt werden.

 

1.Trennen des Befehls von seinem Ende

 

TCC beginnt mit der Unterteilung des Befehls in einen Befehl name und einen Befehl tail. Der Befehlsname ist das erste Wort des Befehls, und das Ende ist alles, was auf den Befehlsnamen folgt. Zum Beispiel in der Befehlszeile

 

dir *.txt /2/p/v

 

Der Befehlsname ist dir, und der Befehl tail ist "*.txt /2/p/v". In einigen Fällen ist der Parser in der Lage, eine falsche Syntax wie dir/w zu verstehen , aber es sollte immer mindestens ein Leerzeichen zwischen dem Befehlsnamen und seinen Parametern stehen.

 

2.Erweitern von Aliasen

 

Weiter, TCC versucht, den Befehlsnamen mit seiner Liste der Aliase abzugleichen . Wenn eine Übereinstimmung zwischen dem Befehlsnamen und einem der von Ihnen definierten Aliase gefunden wird, wird der Befehlsname durch den Inhalt des Aliases ersetzt. Diese Ersetzung wird intern vorgenommen und ist normalerweise für Sie nicht sichtbar; Sie können jedoch eine Befehlszeile mit erweiterten Aliasen anzeigen, indem Sie Strg-W drücken , nachdem Sie den Befehl an der Eingabeaufforderung eingegeben haben.

 

Wenn der Alias Parameter (%1, %2 usw.) enthielt, werden die Parameterwerte aus dem Text in der Befehlszeile ausgefüllt, und alle in diesem Prozess verwendeten Parameter werden aus der Befehlszeile entfernt. Der Prozess des Ersetzens eines Befehlsnamens, der sich auf einen Alias bezieht, durch den Inhalt des Alias und das Einfügen der Alias-Parameter wird alsExpansion desAlias bezeichnet.

 

Diese Expansion eines Alias erzeugt einen neuen Befehlsnamen: das erste Wort des Alias. Dieser neue Befehlsname wird erneut mit der Liste der Aliasnamen verglichen, und wenn eine Übereinstimmung gefunden wird, wird der Inhalt des neuen Alias genau wie der erste Alias expandiert. Dieser Prozess, der als verschachtelte Alias Expansionbezeichnet wird, wird fortgesetzt, bis der Befehlsname nicht mehr auf einen Alias verweist.

 

3.Erweitern von Variablen

 

Der nächste Schritt besteht darin, alle Batch-Dateiparameter, Umgebungsvariablen, internen Variablen oder variablen Funktionen im Befehl zu suchen und sie jeweils durch ihren Wert zu ersetzen (siehe "Umgebung: Variablen und Funktionen"). Dieser Vorgang wird alsExpansion der Variablen bezeichnet und ist normalerweise nicht sichtbar. Sie können jedoch eine expandierte Befehlszeile anzeigen, indem Sie Strg-X drücken, nachdem Sie den Befehl an der Eingabeaufforderung eingegeben haben.

 

Der Prozess der Variablenexpansion ist für bestimmte interne Befehle, wie EXCEPT, IF und GLOBAL,modifiziert . Auf diese Befehle folgt immer ein weiterer Befehl, so dass die Variablenexpansion für den ursprünglichen Befehl und den nachfolgenden Befehl getrennt erfolgt.

 

4.Identifizierung eines Plugins oder eines internen Befehls

 

Sobald die Variablenexpansion abgeschlossen ist, TCC versucht als nächstes, den resultierenden Befehlsnamen mit seiner Liste von Bibliotheksfunktionen,  Plugin-Befehlen oder internen Befehlen abzugleichen . Wenn dies nicht gelingt, weiß es, dass es nach einer Batch-Datei oder einem externen Programm suchen muss, um Ihren Befehl auszuführen.

 

Sie können ein bestimmtes auszuführendes Plugin angeben, indem Sie dem Funktions-/Variablennamen/Befehlsnamen den Plugin-Namen und ein $ voranstellen, zum Beispiel:

 

echo %_myplugin$variable

echo %@myplugin$func[abc]

myplugin$mycommand

 

5.Anzeige des Befehls

 

Wenn alle Aliase und Umgebungsvariablen erweitert wurden, wird TCC den kompletten Befehl auf dem Bildschirm aus (wenn das Befehlszeilenecho aktiviert wurde) und schreibt ihn in die Protokolldatei (wenn die Befehlsprotokollierung aktiviert wurde).

 

6.Verarbeitungsumleitung und Piping

 

Bevor Ihr Befehl tatsächlich ausgeführt werden kann, muss TCC die Befehlszeile daraufhin überprüfen, ob sie eine Umleitung oder ein Piping enthält . Ist dies der Fall, werden die entsprechenden internen Schalter gesetzt, um die Ausgabe an ein anderes Gerät oder eine Datei statt an den Bildschirm zu senden. Falls erforderlich, wird an dieser Stelle ein zweiter Prozess gestartet, der die über die Pipeline ausgegebenen Daten entgegennimmt.

 

7.Verarbeitung von Escape-Zeichen

 

In diesem Stadium werden alle verbleibenden Escape-Zeichen verarbeitet. Dies kann jedoch auch bereits innerhalb einiger variabler Funktionen (z. B. @IF) geschehen sein, die wahrscheinlich Escape-Zeichen in ihren Parametern übergeben. Wenn Sie sich in einem  ECHO- oder ähnlichen Befehl  auf eine dieser Funktionen beziehen , müssen Sie zweimal Escape-Zeichen ("^^") verwenden oder SETDOS /X, um eine vorzeitige Auswertung zu vermeiden. Testen Sie diese Situationen sorgfältig, um sicherzustellen, dass die Ergebnisse Ihren Vorstellungen entsprechen.

 

8.Ausführen des Befehls

 

Schließlich ist es an der Zeit, den Befehl auszuführen. TCC sucht zunächst nach einem passenden  Plugin-Befehlsnamen; wenn dieser nicht existiert, wird versucht, einen internen Befehl zu finden. Andernfalls, TCC nach einer ausführbaren Datei  (.EXE), einer Batch-Datei oder einer Datei mit einer ausführbaren Erweiterung, die mit dem Befehlsnamen übereinstimmt (siehe die ausführliche Beschreibung dieser Suche in Ausführbare Dateien und Dateisuche).

 

Wenn das erste Argument in einer Befehlszeile das Format "env_var=Wert Befehlsoptionen" hat (und env_var=Wert nicht mit einem externen Befehl übereinstimmt), setzt TCC 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 speichert das Ergebnis oder den Exit-Code, den der Befehl generiert hat, bereinigt alle Umleitungen, die Sie angegeben haben, und kehrt dann zur ursprünglichen Befehlszeile zurück, um den nächsten Befehl abzurufen. Wenn alle Befehle in einer Befehlszeile beendet sind, wird die nächste Zeile aus der aktuellen Batchdatei gelesen, oder wenn keine Batchdatei aktiv ist, wird die Eingabeaufforderung angezeigt.

 

Hinweis: Mit dem  Befehl SETDOS /X können Sie verschiedene Teile der Befehlsanalyse (z. B. Alias-Expansion, Variablenexpansion und Umleitung) deaktivieren und wieder aktivieren .