Existe-t-il un équivalent de « which » sur la ligne de commande Windows ?

Existe-t-il un équivalent de « which » sur la ligne de commande Windows ?


Source : Stack Overflow [windows]

Je vous suggère d’utiliser la cmdlet Get-Command de Windows PowerShell, comme décrit dans une autre réponse à cette question par Marawan Mamdouh.

Si vous êtes comme moi et n’utilisez pas PowerShell, utilisez le programme where.exe de Windows. Comme which sous Unix, il affiche le chemin complet correspondant à la commande (nom de fichier uniquement) que vous tapez :

C:\> where edit
C:\Windows\System32\edit.com

Contrairement à which, where.exe peut afficher tous les chemins correspondant au nom de fichier donné, bien que seul le premier affiché soit normalement utilisé lors du lancement d’un programme :

C:\> where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

where.exe essaie de suivre les règles du shell de commande Windows CMD.EXE concernant les noms de fichiers et chemins qui fonctionnent comme commandes. Cela inclut la variable d’environnement %PATHEXT% et la possibilité d’ouvrir des fichiers de données non-programmes en utilisant leurs noms de fichiers avec extensions :

C:\> set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

C:\> where Enterprise.xml slmgr
C:\Windows\Enterprise.xml
C:\Windows\System32\slmgr.vbs

where.exe accepte même les caractères génériques, donc where nt*.exe trouve tous les fichiers dans votre %PATH% et le répertoire courant dont les noms commencent par nt et se terminent par .exe :

C:\> where nt*.exe
C:\Windows\System32\ntoskrnl.exe
C:\Windows\System32\ntprint.exe
C:\Windows\System32\ntvdm.exe

Consultez la documentation en ligne de where.exe ou exécutez where.exe /? pour plus d’aide.

Remarques :

(Réponse tronquée)