Was ist das Äquivalent von Windows für den Befehl "which" in Unix? Gibt es einen entsprechenden PowerShell-Befehl?

24978
Scott

In Linux haben wir den Befehl "which", um den Pfad einer ausführbaren Datei herauszufinden.
Was ist das Windows-Äquivalent? Gibt es dafür einen PowerShell-Befehl?

45
Siehe auch http://stackoverflow.com/questions/304319/is-there-an-quivalent-von-was-auf-der-der-fenster-kommandos-line ysap vor 9 Jahren 0
[Gibt es ein Äquivalent zu "which" in der Windows-Befehlszeile?] (Http://stackoverflow.com/q/304319/995714) phuclv vor 8 Jahren 0

4 Antworten auf die Frage

47
Randy Levy

Einige Windows-Versionen (ich denke, Windows 2003 und höher) haben den Befehl where:

c:\>where ping C:\Windows\System32\PING.EXE 
"Wo" arbeiten für mich in Windows 7 Nam G VU vor 12 Jahren 4
Dies funktioniert nur in cmd, nicht in PowerShell (meiner Erfahrung nach) Thomas vor 9 Jahren 2
Durch das Hinzufügen von / rc: \ konnte ich eine rekursive Suche durchführen, die im Stammverzeichnis des Laufwerks C unter Windows 7 Professional beginnt. Die Datei scheint nicht in https://access.redhat.com/documentation zu sein /en-US/Red_Hat_Enterprise_Linux/4/html/Step_by_Step_Guide/ap-doslinux.html CrandellWS vor 8 Jahren 0
In Powershell sollten Sie `where.exe ping` sagen, da` where` standardmäßig mit dem Cmdlet `Where-Object` verknüpft ist. Dies ist eine völlig andere Geschichte maoizm vor 5 Jahren 0
23
user10404

Ja, Get-Commandfindet alle Befehle einschließlich ausführbarer Dateien:

PS\> Get-Command ipconfig 

Wenn Sie die Befehle auf nur ausführbare Dateien beschränken möchten:

PS\> Get-Command -CommandType Application 

Findet alle Exen in eurem Weg. Es gibt einen Alias ​​für die interaktive Verwendung:

PS\> gcm net* -CommandType Application 

Um den Pfad einer ausführbaren Datei abzurufen, können Sie die PathEigenschaft des zurückgegebenen Objekts verwenden. Zum Beispiel:

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

Weitere Informationen erhalten Sie man Get-Command -full.

2
yzorg

Neben user10404 funktioniert der help-Befehl auch für Aliase. Sie können also denselben Befehlsnamen (gcm) für Hilfe und interaktive Verwendung verwenden:

help gcm -Parameter * # or man gcm -Par * 
1
Manu

Wenn Sie es kurz machen möchten, erstellen Sie eine einzeilige .cmd-Datei mit dem Inhalt

echo %~$PATH:1 

Dadurch wird der erste Parameter (% 1) gesucht, der an das Skript übergeben wird, und der vollständige Pfad der gefundenen Datei wird angezeigt. Ein guter Platz für dieses Skript in Windows 10 ist% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd

Und Sie bekommen Ihren Befehl in Pfad.

c:\>which cmd.exe  c:\>echo C:\Windows\System32\cmd.exe C:\Windows\System32\cmd.exe