Executable Files and File Searches

Lorsque 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 qui portent l'extension.EXE ).

 

Si TCC ne trouve pas de programme exécutable à exécuter, il recherche ensuite un  nom de fichier batch correspondant . TCC recherche d' abord un fichier.BTM , puis un fichier .CMD , puis un fichier.BAT , et enfin un  fichier.REX, .REXX, .PL, .PY, .RB, ou .TCL (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 à l'aide de la  variable d'environnement PATHEXT et de l' option de configuration PathExt correspondante . PATHEXT est pris en charge pour des raisons de compatibilité, mais ne doit généralement pas être utilisé comme substitut aux extensions exécutables, qui sont plus souples.

 

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 une 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 recherche une association directe pour l'extension dans le registre et insère la chaîne associée (généralement le nom d'une application) au début de la ligne de commande, puis appelle l'API  Windows CreateProcess pour exécuter cette commande. Si l'appel à CreateProcess échoue, ou si aucune association n'a été trouvée dans le registre, TCC appelle l' API Windows ShellExec. TCC n'a aucun contrôle sur l'action que les API Windows susmentionnées entreprendront lorsqu'un nom de fichier leur sera présenté. Si vous vous inquiétez de ce que Windows pourrait faire avec une extension "inconnue", créez une extension exécutable spécifique.

 

TCC L'API Windows effectue d'abord cette recherche (d'un programme exécutable, d'un fichier batch ou d'un fichier avec une extension exécutable) dans le répertoire actuel. Si cette recherche échoue, elle est répétée dans tous les répertoires de votrechemin de recherche .

 

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

 

PATH=C:\N;C:\NWINUTIL;D:\NUTIL

 

Les noms de répertoire du chemin de recherche sont séparés par des points-virgules.

 

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

 

Take Command recherche également dans le  répertoire \WINDOWS\SYSTEM32 suivi du  répertoire \WINDOWS. (Les noms des répertoires peuvent être différents sur votre système. TCC détermine les noms corrects des répertoires "Windows" et "Windows System" et les utilise). 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.

 

Note : Si le fichier n'est pas trouvé dans le PATH , TCC vérifie alors s'il existe une  entrée App Paths correspondante  dans le registre Windows (dans l'arborescence HKCU ou HKLM). Les entrées App Paths sont créées par certaines applications au cours du processus d'installation.

 

N'oubliez pas, TCC recherche toujours un fichier exécutable (ou un fichier avec une extension exécutable ou une association de fichiers Windows) dans lesous-répertoire actuel, puis dans lesrépertoiresWindows le cas échéant (voir ci-dessus), puis dans chaque répertoire duchemin de recherche , et enfin dans la  zone App Paths du registre. (Vous pouvez modifier l'ordre de recherche afin que le répertoire actuel ne soit pas recherché en premier ; voir la commandePATH pour plus de détails).

 

Si vous incluez une extension dans le nom de la commande, TCC ne recherche que les fichiers portant cette extension. De même, si vous incluez un chemin d'accès dans le nom de la commande, TCC ne cherchera que dans le répertoire que vous avez spécifié, et ignorera la recherche habituelle dans le répertoire courant et le PATH.

 

Si le nom de votre commande comprend 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 dans laquelle les barres obliques sont utilisées dans les chemins de commande, et que vous souhaitez reconnaître cette approche, vous pouvez définir le nom de la commande comme étant le nom de la commande. TCC reconnaître cette approche, vous pouvez définir l' option de configurationUnix/Linux Paths.

 

Une fois le fichier trouvé, TCC l'exécute en fonction de son extension. Les fichiers .EXE sont exécutés en transmettant leur nom au système d'exploitation. Lesfichiers .BTM, .BAT et (le cas échéant) .CMD sont exécutés par TCC qui lit chaque ligne du fichier comme une nouvelle commande. Les fichiers dotés d'une extension exécutable 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 avec son extension et que le fichier existe dans le répertoire actuel (ou que vous spécifiez un chemin d'accès), mais que le fichier n'a pas d'extension connue par la commande 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 vous n'avez pas défini d'extension exécutable pour les  fichiers.PSP, mais qu'il s'agit d'une extension connue de Windows, vous pouvez simplement saisir une commande telle que celle-ci à l'invite :

 

[c:\Ngraphics] 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 manière de contrôler les associations de fichiers Windows dans les fichiers TCC.

 

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

 

CommandeTCC Séquence de recherche
WPRecherche de tout fichier exécutable dont le nom de base est WP.
WP.EXERecherche de WP.EXE; ne trouve pas les fichiers portant d'autres extensions.
C:\WP\WPRecherche dans le  répertoire C:\WP 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.DOCRecherche LAB.DOC, si .DOC est défini comme extension exécutable. Exécute l'application associée si le fichier est trouvé. Si .DOC n'est pas une extension exécutable, il transmet le nom à Windows pour vérifier s'il existe une association de fichiers Windows.
C:\LI\LAB.DOCRecherche uniquement le fichier C:\LI\LAB.DOC, et uniquement 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, il transmet le nom à Windows pour vérifier s'il existe une association de fichiers Windows.

 

Si le premier argument d'une ligne de commande se présente sous la forme "env_var=valeur commande options" (et que env_var=valeur ne correspond pas à une commande externe), TCC attribue la valeur à la variable d'environnement spécifiée, exécute la commande, puis supprime la variable.

 

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

 

Voir aussi : la  commande WHICH.