Qual é o equivalente do Windows ao comando “which” no Unix? Existe um comando PowerShell equivalente?

45

No Linux, temos o comando "which" para descobrir o caminho de um executável.
Qual é o seu equivalente no Windows? Existe algum comando do PowerShell para fazer isso?

    
por Scott 05.11.2010 / 03:55

4 respostas

47

Algumas versões do Windows (acho que o Windows 2003 e superior) têm o comando where:

c:\>where ping
C:\Windows\System32\PING.EXE
    
por 05.11.2010 / 04:03
23

Sim, Get-Command encontrará todos os comandos, incluindo executáveis:

PS\> Get-Command ipconfig

Se você quiser limitar os comandos apenas a executáveis:

PS\> Get-Command -CommandType Application

Encontrará todos os exes em seu caminho. Existe um alias para uso interativo:

PS\> gcm net* -CommandType Application

Para obter o caminho de um executável, você pode usar a propriedade Path do objeto retornado. Por exemplo:

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

Para mais informações, execute man Get-Command -full .

    
por 05.11.2010 / 03:58
2

Além do user10404, o comando help funcionará em aliases, portanto, você pode usar o mesmo nome de comando (gcm) para ajuda e uso interativo:

help gcm -Parameter *
# or
man gcm -Par *
    
por 08.11.2010 / 22:44
1

Se você quiser resumir, crie uma linha com um arquivo .cmd com o conteúdo

echo %~$PATH:1

Isso irá procurar o primeiro parâmetro (% 1) alimentado para o script e exibir o caminho completo do arquivo encontrado. Bom lugar para colocar este script no Windows 10 é % LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd

E você recebe seu comando no caminho.

c:\>which cmd.exe

c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
    
por 08.11.2017 / 00:07