web-dev-qa-db-fra.com

Quel est l'équivalent Windows de la commande "qui" sous Unix? Existe-il une commande PowerShell équivalente?

Sous Linux, nous avons la commande "qui" pour trouver le chemin d’un exécutable.
Quel est son équivalent Windows? Existe-t-il une commande PowerShell pour le faire?

57
Invincible

Certaines versions de Windows (je pense que Windows 2003 et versions ultérieures) ont la commande where:

c:\>where ping
C:\Windows\System32\PING.EXE
59
Randy Levy

Oui, Get-Command trouvera toutes les commandes, y compris les exécutables:

PS\> Get-Command ipconfig

Si vous voulez limiter les commandes aux exécutables uniquement:

PS\> Get-Command -CommandType Application

Trouvera tous les ex sur votre chemin. Il existe un alias pour une utilisation interactive:

PS\> gcm net* -CommandType Application

Pour obtenir le chemin d'un exécutable, vous pouvez utiliser la propriété Path de l'objet renvoyé. Par exemple:

PS\> (Get-Command notepad.exe).Path

Pour plus d'informations, exécutez man Get-Command -full.

28
user10404

Si vous voulez le rendre bref, créez un fichier one.cmd avec le contenu.

echo %~$PATH:1

Ceci recherchera le premier paramètre (% 1) introduit dans le script et affichera le chemin complet du fichier trouvé. Le bon endroit pour placer ce script dans Windows 10 est% LOCALAPPDATA%\Microsoft\WindowsApps\which.cmd

Et vous obtenez votre commande dans le chemin.

c:\>which cmd.exe

c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
2
Manu

En plus de user10404, la commande help fonctionne sur les alias. Vous pouvez donc utiliser le même nom de commande (gcm) pour obtenir une aide et une utilisation interactive:

help gcm -Parameter *
# or
man gcm -Par *
2
yzorg