Wenn TCC keinen passenden internen Befehlsnamen finden kann, versucht es, eine ausführbare Datei zu finden, deren Name mit dem Befehlsnamen übereinstimmt. (Ausführbare Dateien sind in der Regel solche mit derErweiterung.EXE ).
Wenn TCC kein ausführbares Programm findet, sucht es als nächstes nach einem passenden Batch-Dateinamen. TCC sucht zuerst nach einer .BTM Datei, dann nach einer .CMD Datei, dann nach einer .BAT Datei und schließlich nach einer .REX, .REXX, .PL, .PY, .RB oder .TCL Datei (wenn REXX, Perl, Python, Ruby und/oder Tcl aktiviert sind).
Sie können die Liste der Erweiterungen, die als "ausführbar" gelten, und die Reihenfolge, in der sie durchsucht werden, mit der Umgebungsvariablen PATHEXT und der zugehörigen Konfigurationsoption PathExt ändern . PATHEXT wird aus Kompatibilitätsgründen unterstützt, sollte aber im Allgemeinen nicht als Ersatz für ausführbare Erweiterungen verwendet werden, die flexibler sind.
Hinweis: Wenn die Suche nach einem externen Programm oder einer Batch-Datei fehlschlägt , TCC prüft, ob der Befehlsname mit dem Namen einer Datei mit einer ausführbaren Erweiterung übereinstimmt . Wenn eine ausführbare Erweiterung gefunden wird, TCC wird das Programm ausgeführt, das bei der Definition der Verknüpfung angegeben wurde. Wenn keine ausführbare Erweiterung gefunden wird, TCC nach einer direkten Zuordnung für die Erweiterung in der Registrierung und fügt die zugehörige Zeichenfolge (in der Regel den Namen einer Anwendung) am Anfang der Befehlszeile ein und ruft dann die Windows-API CreateProcess auf , um diesen Befehl auszuführen. Wenn der CreateProcess-Aufruf fehlschlägt oder keine Zuordnung in der Registrierung gefunden wurde, ruft TCC die ShellExec-Windows-API auf . TCC hat keinen Einfluss darauf, welche Aktion die oben genannten Windows-APIs durchführen, wenn ihnen ein Dateiname vorgelegt wird. Wenn Sie sich Sorgen darüber machen, was Windows mit einer "unbekannten" Erweiterung tun könnte, erstellen Sie eine spezifische ausführbare Erweiterung.
TCC führt diese Suche (nach einem ausführbaren Programm, einer Batch-Datei oder einer Datei mit einer ausführbaren Erweiterung) zunächst im aktuellen Verzeichnis durch. Wenn diese Suche fehlschlägt, wird die Suche in allen Verzeichnissen Ihres Suchpfads wiederholt.
Der Suchpfad ist eine Liste von Verzeichnissen, die TCC (und einige Anwendungen) nach ausführbaren Dateien suchen. Wenn Sie zum Beispiel TCC das Stammverzeichnis des Laufwerks C:, das Unterverzeichnis \WINUTIL auf dem Laufwerk C: und das Verzeichnis \UTIL auf dem Laufwerk D: nach ausführbaren Dateien durchsuchen möchten, würde Ihr Suchpfad folgendermaßen aussehen:
PATH=C:\;C:\WINUTIL;D:\UTIL
Die Verzeichnisnamen im Suchpfad sind durch Semikolon getrennt.
Sie können den Suchpfad mit dem Befehl PATH erstellen oder anzeigen . Mit dem ESET-Befehl können Sie den Pfad bearbeiten. Viele Programme verwenden den Suchpfad auch, um ihre eigenen Dateien zu finden. Der Suchpfad wird in der Umgebung unter dem Namen PATH gespeichert.
Take Command durchsucht auch das Verzeichnis \WINDOWS\SYSTEM32, gefolgt vom Verzeichnis \WINDOWS. (Die tatsächlichen Verzeichnisnamen können auf Ihrem System anders lauten. TCC ermittelt die korrekten Namen für die Verzeichnisse "Windows" und "Windows System" und verwendet sie.) Dieser Teil des Suchvorgangs entspricht den traditionellen Suchsequenzen, die unter jedem Windows-Betriebssystem verwendet werden.
Hinweis: Wenn die Datei nicht im PATH gefunden wird, TCC sucht dann nach einem entsprechenden App Paths-Eintrag in der Windows-Registrierung (entweder in der HKCU- oder HKLM-Struktur). App Paths-Einträge werden von einigen Anwendungen während des Installationsvorgangs erstellt.
Zur Erinnerung, TCC sucht immer nach einer ausführbaren Datei (oder einer Datei mit einer Erweiterung für ausführbare Dateien oder einer Windows-Dateizuordnung) im aktuellenUnterverzeichnis , dann in denWindows-Verzeichnissen , falls zutreffend (siehe oben), dann in jedem Verzeichnis imSuchpfad und dann im Bereich "App Paths" der Registrierung. (Sie können die Suchreihenfolge so ändern, dass das aktuelle Verzeichnis nicht zuerst durchsucht wird; siehe den Befehl PATH für weitere Informationen).
Wenn Sie eine Erweiterung als Teil des Befehlsnamens einschließen, TCC sucht nur nach einer Datei mit dieser Erweiterung. Gleiches gilt, wenn Sie einen Pfad als Teil des Befehlsnamens angeben, TCC nur in dem von Ihnen angegebenen Verzeichnis und ignoriert die übliche Suche im aktuellen Verzeichnis und im PATH.
Wenn Ihr Befehlsname einen Pfad enthält, müssen die Elemente mit Backslashes getrennt werden (z. B.c:\wp\wp). Wenn Sie an die Linux-Syntax gewöhnt sind, bei der Schrägstriche in Befehlspfaden verwendet werden, und diese Vorgehensweise TCC erkennen wollen, können Sie die Konfigurationsoption Unix/Linux Paths setzen.
Sobald die Datei gefunden ist, wird TCC führt sie anhand ihrer Erweiterung aus. . EXE-Dateien werden ausgeführt, indem ihr Name an das Betriebssystem übergeben wird. .BTM-, .BAT- und (falls zutreffend) . CMD-Dateien werden ausgeführt durch TCCausgeführt, das jede Zeile der Datei als neuen Befehl liest. Dateien mit ausführbaren Erweiterungen werden ausgeführt, indem die zugehörige Anwendung gestartet und der Name der Datei in der Befehlszeile übergeben wird.
Wenn Sie einen Dateinamen mit Erweiterung angeben und die Datei im aktuellen Verzeichnis existiert (oder Sie geben einen Pfad an), aber die Datei keine Erweiterung hat, die der TCC (.EXE, .BTM, .BAT, .CMD oder eine ausführbare Erweiterung), wird der Dateiname an Windows übergeben, um die in der Windows-Registrierung definierten Dateizuordnungen zu überprüfen. So können Sie jede Datei ausführen, deren Erweiterung Windows bekannt ist, indem Sie einfach den Namen eingeben. Wenn Sie beispielsweise keine ausführbare Erweiterung für . PSP-Dateien definiert haben , Windows diese Erweiterung aber kennt, können Sie an der Eingabeaufforderung einfach einen Befehl wie den folgenden eingeben:
[c:\graphics] image1.psp
und Take Command wird Windows auffordern, die Anwendung für Sie zu starten. Siehe Windows-Dateizuordnungen für weitere Details zur Steuerung von Windows-Dateizuordnungen in TCC.
Die folgende Tabelle fasst die möglichen Suchoptionen zusammen (der Begriff "Standardsuche" bezieht sich auf die Suche im aktuellen Verzeichnis, in den Windows-Verzeichnissen und in jedem Verzeichnis im Suchpfad):
| Befehl | TCC Suchreihenfolge |
| WP | Suche nach allen ausführbaren Dateien, deren Basisname WPist . |
| WP.EXE | Suche nach WP.EXE; Dateien mit anderen Erweiterungen werden nicht gefunden. |
| C:\WP\WP | Sucht im Verzeichnis C:\WP nach allen ausführbaren Dateien , deren BasisnameWP ist. Die Standardsuchverzeichnisse werden nicht überprüft. |
| C:\WP\WP.EXE | Sucht nur nach der Datei C:\WP\WP.EXE. |
| LAB.DOC | Sucht nach LAB.DOC, wenn .DOC als ausführbare Erweiterung definiert ist. Führt die zugehörige Anwendung aus, wenn die Datei gefunden wird. Wenn .DOC keine ausführbare Erweiterung ist, wird der Name an Windows weitergegeben, um eine Windows-Dateizuordnung zu prüfen. |
| C:\LI\LAB.DOC | Sucht nur nach der Datei C:\LI\LAB.DOC, und nur, wenn .DOC als ausführbare Erweiterung definiert ist. Führt die zugehörige Anwendung aus, wenn die Datei gefunden wird. Wenn .DOC keine ausführbare Erweiterung ist, wird der Name an Windows weitergegeben, um zu prüfen, ob eine Windows-Dateizuordnung besteht. |
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), setzt TCC die angegebene Umgebungsvariable auf den Wert, führt den Befehl aus und entfernt dann die Variable.
Wenn TCC keine ausführbare Datei, kein Stapelverarbeitungsprogramm oder keine Datei mit einer ausführbaren Erweiterung oder Windows-Dateiverknüpfung im aktuellen Verzeichnis, einem Verzeichnis im Suchpfad oder dem Verzeichnis, das Sie im Befehl angegeben haben, finden kann, sucht es nach einem Alias namens UNKNOWN_CMD (siehe den Befehl ALIAS für weitere Einzelheiten). Wenn Sie einen Alias mit diesem Namen definiert haben, wird er ausgeführt (so können Sie die Fehlerbehandlung für unbekannte Befehle steuern). Wenn TCC keinen Alias UNKNOWN_CMD finden kann , wird nach einem Plugin-Befehl namens UNKNOWN_CMD gesucht . Andernfalls, TCC eine Fehlermeldung "Unbekannter Befehl" aus und wartet auf Ihre nächste Anweisung.
Siehe auch: der WHICH-Befehl.