Powershell-Äquivalent zu einem Unix-Befehl

25216
Herms

Hat Powershell ein Äquivalent zu dem whichBefehl, das in den meisten (wenn nicht allen) Unix-Shells gefunden wird?

Manchmal möchte ich wissen, wo etwas von der Befehlszeile aus läuft. In Unix mache ich einfach which <command>und es sagt mir. Ich kann in Powershell keine Entsprechung finden.

59

4 Antworten auf die Frage

60
nagul

Dies wurde gefragt und beantwortet: Stack Overflow: Entspricht dem Befehl * Nix 'which' in Powershell?

Der allererste Alias, den ich machte, als ich mein Profil in Powershell anpaßte, war "which".

New-Alias which get-command 

Um dies Ihrem Profil hinzuzufügen, geben Sie Folgendes ein:

"`nNew-Alias which get-command" | add-content $profile 

Das `n soll sicherstellen, dass es als neue Zeile beginnt.

Genau das, wonach ich gesucht habe. Vielen Dank! Herms vor 15 Jahren 0
28
FLGMwt

Ab PowerShell 3.0 können Sie dies tun

(Get-Command cmd).Path 

Das hat auch den Vorteil gegenüber vanilla Get-Command, eine a zurückzugeben, System.Stringso dass Sie eine saubere * nixy Single-Line-Ausgabe erhalten, wie Sie es vielleicht gewohnt sind. Mit dem gcm-Alias ​​können wir es auf 11 Zeichen reduzieren.

(gcm cmd).Path 
Wenn "Get-Command" mehrere Ergebnisse findet, wird ein Array zurückgegeben. Wenn der gefundene Befehl keine ausführbare Datei ist, ist `Path` außerdem undefiniert (` $ null`). Dies macht die Antwort hier für den allgemeinen Gebrauch ohne umfangreiche Modifikation unpraktisch. Um ein gutes Beispiel für beide Fälle zu erhalten, probieren Sie `Get-Command where`. jpmc26 vor 10 Jahren 3
Dies sollte die akzeptierte Antwort sein, da es Ihnen tatsächlich sagt, was das Powershell-Äquivalent des * NIX-Befehls "where" ist, anstatt Ihnen beizubringen, wie Sie Aliasnamen auf Powershell setzen, was nicht der Titel der Frage ist. mastazi vor 9 Jahren 0
@mastazi: Aber das scheitert an Builtins, was eine Regression ist im Vergleich zu ** zsh ** 's `which'. ("Wo" ist übrigens eigentlich ein Windows-Dienstprogramm, das eine Reihe verschiedener Dinge ausführen kann, von denen eine ungefähr die Suche nach einem Befehl entlang des "PATH" darstellt.) Außerdem gibt es nichts * * falsch mit einer Antwort, die erklärt, wie das zu tun ist, was gefragt wurde * und * auch eine andere, etwas kompliziertere Sache, die darauf aufbaut. SamB vor 6 Jahren 1
6
Anonymous

Also answered in 2008: Is there an equivalent of 'which' on windows?

Try the where command if you've installed a Resource Kit: http://ss64.com/nt/where.html

Most important parts of the answer:

Windows Server 2003 and later provide the WHERE command which does some of what which does, though it matches all types of files, not just executable commands.

[snip]

In Windows PowerShell you must type where.exe.

3
hshen
function which([string]$cmd)