En Linux, tenemos el comando "which" para encontrar la ruta de un ejecutable.
¿Cuál es su equivalente de Windows? ¿Hay algún comando de PowerShell para hacer eso?
En Linux, tenemos el comando "which" para encontrar la ruta de un ejecutable.
¿Cuál es su equivalente de Windows? ¿Hay algún comando de PowerShell para hacer eso?
Respuestas:
Algunas versiones de Windows (creo que Windows 2003 y posteriores) tienen el comando where:
c:\>where ping
C:\Windows\System32\PING.EXE
where
trabaja para mí en Windows 7
where /r c:\ fileName
agregar / 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/…
where.exe ping
, porque where
es un alias por defecto para Where-Object
cmdlet que es completamente diferente historia
where.exe
explícitamente en lugar de where
trabajar para mí en PowerShell
Sí, Get-Command
encontrará 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 Path
propiedad del objeto devuelto. Por ejemplo:
PS\> (Get-Command notepad.exe).Path
Para más información, corre man Get-Command -full
.
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
where.exe
explícitamente en lugar de where
trabajar para mí en PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where ping
no me da nada en PowerShell.
where.exe
.