risposta

7

Un equivalente è Get-Command.

PS C:\> Get-Command ls 

CommandType  Name  Definition 
-----------  ----  ---------- 
Alias   ls   Get-ChildItem 
Application  ls.exe  D:\usr\local\wbin\ls.exe 
Application  ls.exe  C:\Program Files (x86)\Git\bin\ls.exe 

di Windows 10 Update:

Dal momento che ho postato questa risposta, sembra che il comportamento di Get-Command è cambiato. Per includere tutti i risultati (nello stile di Un * x) type), ora ho bisogno di passare il flag -All, in questo modo:

PS C:\> Get-Command -All ls 

CommandType  Name     Version Source 
-----------  ----     ------- ------ 
Alias   ls -> Get-ChildItem 
Application  ls.exe    0.0.0.0 C:\Program Files (x86)\Git\usr\bin\ls.exe 

Come osservato in un commento, questo non significa includono la Definition colonna come era il comportamento precedente. Non riesco a stabilire un argomento della riga di comando per aggiungere la colonna definizione, ma come notato da @voutasaurus nel commento qui sotto, si può usare: informazioni

PS C:\> (Get-Command -All ls).Definition 
Get-ChildItem 
C:\Program Files (x86)\Git\usr\bin\ls.exe 

versione di riferimento (I odn't dispone della versione informazioni associate al testo della risposta originale, ma credo che si trattava di Windows 7):

PS C:\> [System.Environment]::OSVersion.Version 

Major Minor Build Revision 
----- ----- ----- -------- 
10  0  15063 0 
+0

Questo non funziona per le funzioni definite in $ profile, mentre type restituisce la definizione della funzione in bash. – voutasaurus

+0

sto ottenendo questo: > Get-Command Get-Command CommandType Nome Versione Fonte ----------- ---- ------- ---- - Cmdlet Get-Command 3.0.0.0 Microsoft.PowerShell.Core Se si utilizza (Get-Command Get-Command). Definizione allora si ottiene effettivamente la definizione. – voutasaurus

+0

Grazie a @voutasaurus che deve essere cambiato da quando è stata pubblicata la risposta. Ho modificato la risposta con il tuo suggerimento. – pb2q

1

Dal momento che hai contrassegnato questo con Shell, oltre a PowerShell di Get-Command, c'è where.exe:

PS C:\> where.exe notepad 
C:\Windows\System32\notepad.exe 
C:\Windows\notepad.exe 

Il comando appena cerca un file con il nome specificato attraverso il percorso:

PS C:\> where.exe readme.* 
C:\Python31\README.txt 
C:\Program Files (x86)\wget\README 
C:\Program Files (x86)\SysinternalsSuite\readme.txt 

Si noti che quando si chiama questo comando da PowerShell, è necessario chiamare come where.exe perché Where-Object è alias di where.

Problemi correlati