Lembrei que usei uma ferramenta chamada where
para encontrar locais para quaisquer programas executáveis como este em um console:
C:\Tmp\Where myTool.exe
C:\Program Files\MyApp\myTools.exe
....
Agora não consigo encontrar esta ferramenta. Não tem certeza se o Windows possui uma ferramenta interna para fazer essa pesquisa?
where
trabalhou para mim no Windows 7 EnterpriseRespostas:
De acordo com a resposta StackOverflow em Existe um equivalente de 'what' no Windows? ,
where.exe
faz isso no Windows 7 e Windows Server 2003 e posterior:Exemplo
Resultado:
fonte
where
é um alias padrão para oWhere-Object
, para que em vez precisa usarwhere.exe
ougcm
/Get-Command
Get-Command ping
(ou apenasgcm ping
), o que fornecerá o caminho completo, além de outras informações.EDIT: eu deveria ter adicionado, se você não pode usar o comando WHERE no prompt de comando, verifique sua variável PATH. (Basta usar o comando "caminho".) Verifique se C: \ Windows \ System32 está no seu caminho. É aí que o "where.exe" está localizado.
ONDE está o comando que você está procurando! WHERE é como um cruzamento entre o shell "UN" incorporado do comando UNIX e o comando "localizar", na medida em que funciona para executáveis de comando e arquivos regulares.
Também é um pouco mais complexo do que qualquer um desses dois, embora, em geral, um simples
vai funcionar.
É diferente do comando "localizar", pois não está visualizando todo o sistema de arquivos. Em vez disso, o comportamento padrão é procurar arquivos em dois locais:
Portanto, qualquer comando que você possa executar diretamente em um prompt de comandos sem especificar o diretório será encontrado pelo comando WHERE. (Porque qualquer comando como esse já está na lista de variáveis PATH.)
Se você deseja pesquisar apenas na variável do caminho de comando, pode usar:
Se, por outro lado, você quiser encontrar todas as cópias de um arquivo em uma árvore de diretórios, poderá usar:
Finalmente, WHERE encontrará comandos e arquivos com uma extensão da variável PATHEXT sem incluir a extensão. Todos os outros arquivos devem ser especificados exatamente ou com curingas.
Tomemos, por exemplo, os arquivos "dxdiag.exe" e "dxdiagn.dll". Observe o seguinte comando e sua saída:
Consegue retornar todas as versões do "dxdiag.exe" porque ".exe" é uma das extensões na variável PATHEXT. (Nota: "WHERE dxdiag" também funcionaria, porque C: \ Windows \ System32 está na variável PATH.)
por outro lado, falha ao retornar qualquer resultado, porque ".dll" não está no PATHEXT.
Nesse caso, observe o resultado que adicionar um curinga nos dá:
Ele retorna com êxito todas as versões do dxdiagn.dll.
Para mais informações, use "ONDE /?". Espero que isto ajude!
fonte
where where
C:\Windows\System32\where.exe
:)use
dir
:a
cd \
peça muda para a raiz da unidade, para garantir que a pesquisa comece no topo da hierarquia.fonte
Observe que algumas coisas podem ser um pouco diferentes para o PowerShell:
fonte
Frustrante que não seja incorporado como um comando simples.
No entanto, existem várias soluções, uma das quais é um arquivo em lotes .
Crie um arquivo em lotes (which.bat) da seguinte maneira:
Ele procura no diretório local, pega um parâmetro de nome de arquivo com ou sem uma extensão e retorna a primeira correspondência do diretório atual ou no PATH.
Em seguida, execute-o como
which cmd.exe
para encontrar o cmd.exe que será executado se você digitarcmd
.fonte
No Windows, você pode usar o utilitário gratuito Everything search engine para procurar instantaneamente qualquer arquivo por nome completo ou parcial (se o seu disco rígido estiver formatado em NTFS).
fonte
Se você quer apenas qual , o projeto GnuWin32 tem vários utilitários unix com instaladores individuais.
fonte
No PowerShell
Você pode facilmente converter isso em um cmdlet.
Outra maneira de fazer isso, conforme sugerido em uma edição:
fonte
Se você só precisa do caminho para iniciá-lo, geralmente é melhor usar o comando start. Por exemplo, você pode usar "start chrome.exe" para iniciar o Chrom {e | ium}, independentemente de onde ele esteja instalado.
fonte
Heh, eu apenas tenho que postar este arquivo em lotes de liner deste Windows:
Um teste:
Não é uma linha única se você incluir o código
setlocal enableextensions
eendlocal
, que é necessário para usuários que não têm as extensões ativadas por padrão.fonte