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?
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?
Réponses:
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
where
travaille pour moi dans Windows 7
where /r c:\ fileName
l'ajout de / rc: \ m'a permis d'effectuer une recherche récursive à partir de la racine du lecteur C sous Windows 7 Professionnel, mais il semble que ce ne soit pas dans access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
where.exe ping
car where
c'est par défaut un alias de la Where-Object
cmdlet qui est une histoire complètement différente
where.exe
explicitement plutôt que ne where
fonctionne pour moi dans PowerShell
Oui, vous Get-Command
trouverez 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 Path
propriété de l'objet renvoyé. Par exemple:
PS\> (Get-Command notepad.exe).Path
Pour plus d'informations, lancez man Get-Command -full
.
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
where.exe
explicitement plutôt que ne where
fonctionne pour moi dans PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where ping
ne me donne rien dans PowerShell.
where.exe
.