¿Cuál es el equivalente de Windows del comando "which" en Unix? ¿Hay un comando equivalente de PowerShell?


Respuestas:


79

Algunas versiones de Windows (creo que Windows 2003 y posteriores) tienen el comando where:

c:\>where ping
C:\Windows\System32\PING.EXE

55
wheretrabaja para mí en Windows 7
Nam G VU

66
Esto solo funciona en cmd, no en PowerShell (en mi experiencia)
Thomas

where /r c:\ fileNameagregar / rc: \ me permitió realizar una búsqueda recursiva comenzando en la raíz de la unidad C usando Windows 7 Professional, parece que no está en access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
CrandellWS

66
en Powershell que debe decir where.exe ping, porque wherees un alias por defecto para Where-Objectcmdlet que es completamente diferente historia
maoizm

where.exeexplícitamente en lugar de wheretrabajar para mí en PowerShell
drkvogel

36

Sí, Get-Commandencontrará todos los comandos, incluidos los ejecutables:

PS\> Get-Command ipconfig

Si desea limitar los comandos a solo ejecutables:

PS\> Get-Command -CommandType Application

Encontrará a todos los exes en su camino. Hay un alias para uso interactivo:

PS\> gcm net* -CommandType Application

Para obtener la ruta de un ejecutable, puede usar la Pathpropiedad del objeto devuelto. Por ejemplo:

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

Para más información, corre man Get-Command -full.


2

Además del usuario10404, el comando de ayuda funcionará con alias, por lo que puede usar el mismo nombre de comando (gcm) para ayuda y uso interactivo:

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

2

Si desea acortarlo, cree un archivo de una línea que .cmd con el contenido

echo %~$PATH:1

Esto buscará el primer parámetro (% 1) alimentado al script y mostrará la ruta completa del archivo encontrado. Un buen lugar para poner este script en Windows 10 es% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd

Y obtienes tu comando en el camino.

c:\>which cmd.exe

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

1

where.exeexplícitamente en lugar de wheretrabajar para mí en PowerShell:

PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE

Funciona en Windows 10 1903.
Ultrasonic54321

En PowerShell? Estoy en Windows 10 Pro 1903 y where pingno me da nada en PowerShell.
drkvogel

Lo siento, no estaba claro. Me refería where.exe.
Ultrasonic54321
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.