Respuesta

7

Un equivalente es 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 

Windows 10 Actualización:

Desde que he publicado esta respuesta, parece que el comportamiento de Get-Command ha cambiado. Para incluir todos los resultados (en el estilo de Un * x) type), ahora tengo que pasar el indicador -All, así:

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 

Como se señaló en un comentario, esto no incluyen la Definition columna como era el comportamiento anterior. No puedo determinar un argumento de línea de comandos para agregar la columna de la definición, pero como se ha señalado por @voutasaurus en el comentario a continuación, se puede utilizar: la información

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

versión de referencia (I odn't tiene la versión la información asociada con el texto de la respuesta original, pero supongo que era de Windows 7):

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

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

Esto no funciona para las funciones definidas en $ profile, mientras que type devuelve la definición de la función en bash. – voutasaurus

+0

me estoy haciendo esto: > Get-Command Get-Command CommandType Nombre Versión Fuente ----------- ---- ------- ---- - Cmdlet Get-Command 3.0.0.0 Microsoft.PowerShell.Core Si usa (Get-Command Get-Command) .Definition entonces realmente obtiene la definición. – voutasaurus

+0

Gracias @voutasaurus que debe haber cambiado desde que se publicó la respuesta. He modificado la respuesta con tu sugerencia. – pb2q

1

Ya que esta etiquetado con Shell, además de PowerShell de Get-Command, hay where.exe:

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

El comando sólo se ve un archivo con el nombre especificado a través de la ruta:

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

Tenga en cuenta que cuando se llama a este comando desde PowerShell, debe llamar como where.exe porque Where-Object es alias a where.