it-swarm-eu.dev

PowerShell è equivalente al comando `which` di Unix?

PowerShell ha un equivalente al comando which trovato nella maggior parte (se non in tutte) delle shell Unix?

Ci sono un certo numero di volte in cui mi piacerebbe conoscere la posizione di qualcosa che sto correndo dalla riga di comando. In Unix faccio solo which <command>, e mi dice. Non riesco a trovare un equivalente in PowerShell.

66
Herms

Questo è stato chiesto e ha risposto su Stack Overflow: Equivalente di * Nix 'quale' comando in PowerShell?

Il primo alias che ho creato dopo aver iniziato a personalizzare il mio profilo in PowerShell era "which".

New-Alias ​​che get-command

Per aggiungere questo al tuo profilo, digita questo:

"` nNew-Alias ​​che get-command "| aggiungi-contenuto $ profilo

Il `n all'inizio dell'ultima riga serve a garantire che inizi come una nuova riga.

69
nagul

A partire da PowerShell 3.0, puoi farlo

(Get-Command cmd).Path

Il che ha anche il vantaggio rispetto a Vanilla Get-Command di restituire un System.String in modo da ottenere un output * nixy single line pulito come se fosse possibile. Usando l'alias gcm, possiamo portarlo a 11 caratteri.

(gcm cmd).Path
32
FLGMwt

Risposte anche nel 2008: Esiste un equivalente di "which" sulla riga di comando di Windows?

Prova il comando where se hai installato un Resource Kit.

Le parti più importanti della risposta:

Windows Server 2003 e versioni successive forniscono il comando WHERE che fa parte di ciò che fa, sebbene corrisponda a tutti i tipi di file, non solo ai comandi eseguibili.

[Omissis]

In Windows PowerShell è necessario digitare where.exe.

6
Anonymous
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}
3
hshen