Debería haber añadido, si no puedes usar el comando WHERE desde el símbolo del sistema, comprueba tu variable PATH. (Sólo usa el comando “path”.) Asegúrate de que C:\NWindows\N-System32 está en tu camino. Ahí es donde se encuentra “where.exe”.
WHERE es el comando que estás buscando! WHERE es como un cruce entre el shell de UNIX incorporado “which” y el comando “locate”, en el sentido de que funciona tanto para los ejecutables del comando como para los archivos regulares.
También es algo más complejo que cualquiera de esos dos, aunque, en general un simple
WHERE <file>
funcionará.
Es diferente del comando “locate” en el sentido de que no está buscando a través de todo el sistema de archivos. En su lugar, el comportamiento por defecto es buscar archivos en dos lugares:
- El directorio actual.
- Todos los directorios de la variable PATH.
Así que, cualquier comando que puedas ejecutar directamente desde un símbolo del sistema sin especificar el directorio, será encontrado por el comando WHERE. (Porque cualquier comando así ya está en la lista de variables PATH).
Si quieres buscar sólo en la variable PATH, puedes usar:
WHERE "$path:<search text>"
Si, por otro lado, quieres encontrar todas las copias de un archivo en un árbol de directorios, puedes usar:
WHERE /R <Top Level Directory> <search text>
Finalmente, WHERE encontrará los comandos y cualquier archivo con una extensión de la variable PATHEXT sin incluir la extensión. Todos los demás archivos deben ser especificados exactamente o con comodines.
Tomemos por ejemplo los archivos “dxdiag.exe” y “dxdiagn.dll”. Fíjese en el siguiente comando y su salida:
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
Consigue devolver todas las versiones de “dxdiag.exe” porque “.exe” es una de las extensiones de la variable PATHEXT. (Nota: “WHERE dxdiag” también habría funcionado, porque C:\Windows\System32 está en la variable PATH.)
WHERE /R C:\Windows dxdiagn
por otro lado, no devuelve ningún resultado, porque “.dll” es no en PATHEXT.
En este caso, mira el resultado que nos da la suma de un comodín:
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
Devuelve con éxito todas las versiones de dxdiagn.dll.
Para más información, usa “WHERE /?”. ¡Espero que esto ayude!