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 "path"). Certifique-se de que C: \ Windows \ System32 esteja em seu caminho. É onde "where.exe" está localizado.
ONDE é o comando que você está procurando! WHERE é como um cruzamento entre o shell interno do UNIX "which" e o comando "locate", que funciona tanto para arquivos executáveis quanto para arquivos regulares.
Também é um pouco mais complexo do que qualquer um desses dois, embora, em geral, um simples
WHERE <file>
funcionará.
É diferente do comando "locate", pois não está procurando em 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.
Assim, qualquer comando que você possa executar diretamente de um prompt de comando 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ê quiser pesquisar somente na variável do caminho de comando, poderá 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, você pode usar:
WHERE /R <Top Level Directory> <search text>
Finalmente, WHERE encontrará comandos e quaisquer arquivos com uma extensão da variável PATHEXT sem incluir a extensão. Todos os outros arquivos precisam ser especificados exatamente ou com curingas.
Tome 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
Ele consegue retornar todas as versões de "dxdiag.exe" porque ".exe" é uma das extensões na variável PATHEXT. (Nota: "WHERE dxdiag" teria funcionado bem, porque C: \ Windows \ System32 está na variável PATH).
WHERE /R C:\Windows dxdiagn
por outro lado, não retorna nenhum resultado, porque ".dll" não é em PATHEXT.
Nesse caso, observe o resultado que a adição de um caractere curinga nos oferece:
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 sucesso todas versões do dxdiagn.dll.
Para mais informações, use "WHERE /?". Espero que isso ajude!