Fichiers exécutables et recherches de fichiers

Quand TCC ne trouve pas de nom de commande interne correspondant, il essaie de trouver un fichier exécutable dont le nom correspond au nom de la commande. (Les fichiers exécutables sont généralement ceux avec un . EXE extension.)

 

If TCC ne trouve pas de programme exécutable à exécuter, il recherche ensuite un programme correspondant fichier batch nom. TCC cherche d'abord un .BTM fichier, puis pour un .CMD fichier, puis pour un . BAT fichier, et enfin pour un .REX, .REXX,.PL, .PY, .RB ou .TCL fichier (si REXX, Perl, Python, Ruby et/ou Tcl sont activés).

 

Vous pouvez modifier la liste des extensions considérées comme « exécutables » et l'ordre dans lequel elles sont recherchées, avec le PATHEXT variable d'environnement et les variables associées CheminExt option de configuration. PATHEXT est pris en charge pour des raisons de compatibilité mais ne doit généralement pas être utilisé comme substitut à extensions exécutables, qui sont plus flexibles.

 

Remarque: Si la recherche d'un programme externe ou d'un fichier batch échoue, TCC vérifie si le nom de la commande correspond au nom d'un fichier avec un extension exécutable. Si une extension exécutable est trouvée, TCC exécute le programme spécifié lors de la définition de l'association. Si aucune extension exécutable n'est trouvée, TCC recherchera une association directe pour l'extension dans le registre et insérera la chaîne associée (généralement le nom d'une application) au début de la ligne de commande, puis appellera le Windows CreateProcess API pour exécuter cette commande. Si l'appel CreateProcess échoue ou si aucune association n'a été trouvée dans le registre, TCC appelle le ShellExec API Windows. TCC n'a aucun contrôle sur l'action que les API Windows ci-dessus entreprendront lorsqu'un nom de fichier leur sera présenté. Si vous êtes préoccupé par ce que Windows pourrait faire avec une extension « inconnue », créez une extension exécutable spécifique.

 

TCC effectue d'abord cette recherche (pour un programme exécutable, un fichier batch ou un fichier avec une extension exécutable) dans le répertoire courant. Si cette recherche échoue, ils répètent la recherche dans chaque répertoire de votre recherche chemin.

 

Le chemin de recherche est une liste de répertoires qui TCC (et certaines applications) recherchent des fichiers exécutables. Par exemple, si vous vouliez TCC pour rechercher dans le répertoire racine du lecteur C:, le sous-répertoire \WINUTIL du lecteur C: et le répertoire \UTIL du lecteur D: les fichiers exécutables, votre chemin de recherche ressemblerait à ceci :

 

CHEMIN=C:\;C:\WINUTIL;D:\UTIL

 

Les noms de répertoires dans le chemin de recherche sont séparés par des points-virgules.

 

Vous pouvez créer ou afficher le chemin de recherche avec le PATH commande. Vous pouvez utiliser le ESET commande pour modifier le chemin. De nombreux programmes utilisent également le chemin de recherche pour rechercher leurs propres fichiers. Le chemin de recherche est stocké dans l'environnement sous le nom PATH.

 

Take Command recherche également le \WINDOWS\SYSTEM32 répertoire suivi du \LES FENÊTRES annuaire. (Les noms de répertoires réels peuvent être différents sur votre système. TCC déterminera les noms corrects pour les répertoires "Windows" et "Windows System" et les utilisera.)  Cette partie de la procédure de recherche est conforme aux séquences de recherche traditionnelles utilisées sous chaque système d'exploitation Windows.

 

Remarque: Si le fichier n'est pas trouvé sur le PATH, TCC puis vérifie un correspondant Chemins d'application entrée dans le registre Windows (soit dans l'arborescence HKCU, soit dans l'arborescence HKLM). Chemins d'application des entrées sont créées par certaines applications pendant le processus d'installation.

 

Rappelez-vous, TCC recherche toujours un fichier exécutable (ou un fichier avec une extension exécutable ou une association de fichiers Windows) dans le fichier actuel. sous-répertoire, puis dans le sous-répertoire Windows répertoires le cas échéant (voir ci-dessus), puis dans chaque répertoire dans la recherche chemin, puis dans le Chemins d'application zone du registre. (Vous pouvez modifier l'ordre de recherche afin que le répertoire actuel ne soit pas recherché en premier ; voir le PATH commande pour plus de détails.)

 

Si vous incluez une extension dans le nom de la commande, TCC recherche uniquement un fichier avec cette extension. De même, si vous incluez un chemin dans le nom de la commande, TCC recherchera uniquement dans le répertoire que vous avez spécifié et ignorera la recherche habituelle du répertoire courant et du PATH.

 

Si le nom de votre commande inclut un chemin, les éléments doivent être séparés par des barres obliques inverses (par exemple c:\wp\wp). Si vous êtes habitué à la syntaxe Linux où des barres obliques sont utilisées dans les chemins de commande et que vous souhaitez TCC pour reconnaître cette approche, vous pouvez définir le Chemins Unix/Linux option de configuration.

 

Une fois le fichier trouvé, TCC l'exécute en fonction de son extension. . EXE les fichiers sont exécutés en transmettant leurs noms au système d'exploitation. .BTM, .BAT, et (le cas échéant) .CMD les fichiers sont exécutés par TCC, qui lit chaque ligne du fichier comme une nouvelle commande. Les fichiers avec des extensions exécutables sont exécutés en démarrant l'application associée et en transmettant le nom du fichier sur la ligne de commande.

 

Si vous spécifiez un nom de fichier incluant une extension et que le fichier existe dans le répertoire actuel (ou si vous spécifiez un chemin), mais que le fichier n'a pas d'extension connue de TCC (.EXE, .BTM, .BAT, .CMD, ou une extension exécutable), le nom du fichier sera transmis à Windows pour vérifier les associations de fichiers définies dans le registre Windows. Cela vous permet d'exécuter n'importe quel fichier dont l'extension est connue de Windows, simplement en tapant son nom. Par exemple, si aucune extension exécutable n'est définie pour .PSP fichiers, mais il s'agit d'une extension connue de Windows, à l'invite, vous pouvez simplement saisir une commande comme celle-ci :

 

[c:\graphics] image1.psp

 

et Take Command demandera à Windows de démarrer l'application pour vous. Voir Associations de fichiers Windows pour plus de détails sur la façon de contrôler les associations de fichiers Windows dans TCC.

 

Le tableau suivant résume les options de recherche possibles (le terme « recherche standard » fait référence à la recherche du répertoire courant, des répertoires Windows et de chaque répertoire du chemin de recherche) :

 

CommandTCC Séquence de recherche
WPRecherchez tout fichier exécutable dont le nom de base est WP.
WP.EXERechercher WP.EXE; ne trouvera pas de fichiers avec d'autres extensions.
C:\WP\WPOn dirait dans C:\WP répertoire pour tout fichier exécutable dont le nom de base est WP. Ne vérifie pas les répertoires de recherche standard.
C:\WP\WP.EXERecherche uniquement le fichier C:\WP\WP.EXE.
LAB.DOCRechercher LAB.DOC, Si . DOC est défini comme une extension exécutable. Exécute l'application associée si le fichier est trouvé. Si . DOC n'est pas une extension exécutable, transmet le nom à Windows pour rechercher une association de fichiers Windows.
C:\LI\LAB.DOCRecherche uniquement le fichier C:\LI\LAB.DOC, et seulement si . DOC est défini comme une extension exécutable. Exécute l'application associée si le fichier est trouvé. Si . DOC n'est pas une extension exécutable, transmet le nom à Windows pour rechercher une association de fichiers Windows.

 

Si le premier argument sur une ligne de commande est au format "env_var=value options de commande" (et env_var=value ne correspond pas à une commande externe), alors TCC définira la variable d'environnement spécifiée sur la valeur, exécutera la commande, puis supprimera la variable.

 

If TCC ne trouve pas un fichier exécutable, un programme batch ou un fichier avec une extension exécutable ou une association de fichiers Windows dans le répertoire actuel, un répertoire dans le chemin de recherche ou le répertoire que vous avez spécifié dans la commande, il recherche ensuite un alias appelé UNKNOWN_CMD (voir le ALIAS commande pour plus de détails). Si vous avez défini un alias avec ce nom, il est exécuté (cela vous permet de contrôler la gestion des erreurs pour les commandes inconnues). Si TCC je ne trouve pas de UNKNOWN_CMD alias, il recherchera une commande de plugin nommée UNKNOWN_CMD. Dans le cas contraire, TCC affiche un message d'erreur « Commande inconnue » et attend votre prochaine instruction.

 

Voir aussi : le LEQUEL commander.