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
WHERE <file>
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:
- O diretório atual.
- Todos os diretórios na variável PATH.
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:
WHERE "$path:<search text>"
Se, por outro lado, você quiser encontrar todas as cópias de um arquivo em uma árvore de diretórios, poderá usar:
WHERE /R <Top Level Directory> <search text>
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:
WHERE /R C:\Windows dxdiag
C:\Windows\System32\dxdiag.exe
C:\Windows\SysWOW64\dxdiag.exe
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiag.exe
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiag.exe
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.)
WHERE /R C:\Windows dxdiagn
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á:
WHERE /R C:\Windows dxdiagn*
C:\Windows\System32\dxdiagn.dll
C:\Windows\System32\en-US\dxdiagn.dll.mui
C:\Windows\SysWOW64\dxdiagn.dll
C:\Windows\SysWOW64\en-US\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_daccd04369b09c70\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiagn.dll
C:\Windows\WinSxS\x86_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_7eae34bfb1532b3a\dxdiagn.dll.mui
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiagn.dll
Ele retorna com êxito todas as versões do dxdiagn.dll.
Para mais informações, use "ONDE /?". Espero que isto ajude!