Qual é o equivalente do Windows ao comando "what" no Unix? Existe um comando equivalente do PowerShell?

Respostas:

76

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
Randy Levy
fonte
5
wheretrabalho para mim no Windows 7
Nam G VU
5
Isso funciona apenas no cmd, e não no PowerShell (na minha experiência) #
Thomas
where /r c:\ fileNameadicionar o / rc: \ me permitiu executar uma pesquisa recursiva iniciando na raiz da unidade C usando o Windows 7 Professional e parece não estar em access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
CrandellWS
6
em Powershell você deve dizer where.exe pingporque whereé, por padrão alias para Where-Objectcmdlet que é completamente diferente história
maoizm
34

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

PS\> Get-Command ipconfig

Se você deseja limitar os comandos apenas aos executáveis:

PS\> Get-Command -CommandType Application

Encontrará todos os exes no 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 Pathpropriedade do objeto retornado. Por exemplo:

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

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

user10404
fonte
2

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

help gcm -Parameter *
# or
man gcm -Par *
yzorg
fonte
2

Se você quiser abreviá-lo, crie uma linha com o arquivo.cmd com o conteúdo

echo %~$PATH:1

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

E você obtém seu comando no caminho.

c:\>which cmd.exe

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