Recordé que usé una herramienta llamada where
para encontrar ubicaciones para cualquier programa ejecutable como este en una consola:
C:\Tmp\Where myTool.exe
C:\Program Files\MyApp\myTools.exe
....
Ahora no puedo encontrar esta herramienta. ¿No está seguro si Windows tiene una herramienta integrada para hacer esa búsqueda?
where
funcionó para mí en Windows 7 EnterpriseRespuestas:
De acuerdo con la respuesta de StackOverflow en ¿Hay un equivalente de 'cuál' en Windows? ,
where.exe
hace esto en Windows 7 y Windows Server 2003 y posterior:Ejemplo
Salida:
fuente
where
es un alias predeterminado para elWhere-Object
, por lo que debe usarwhere.exe
, ogcm
/Get-Command
Get-Command ping
(o simplementegcm ping
), lo que le dará la ruta completa, junto con alguna otra información.EDITAR: Debería haber agregado, si no puede usar el comando WHERE desde el símbolo del sistema, verifique su variable PATH. (Simplemente use el comando "ruta"). Asegúrese de que C: \ Windows \ System32 esté en su ruta. Ahí es donde se encuentra "where.exe".
¡DÓNDE está el comando que estás buscando! WHERE es como un cruce entre el shell incorporado de UNIX "which" y el comando "localizar", en el sentido de que funciona tanto para ejecutables de comandos como para archivos normales.
También es algo más complejo que cualquiera de esos dos, aunque, en general, un simple
trabajará.
Es diferente del comando "localizar" en que no está mirando a través de todo el sistema de archivos. En cambio, el comportamiento predeterminado es buscar archivos en dos ubicaciones:
Por lo tanto, el comando WHERE encontrará cualquier comando que pueda ejecutar directamente desde un símbolo del sistema sin especificar el directorio. (Porque cualquier comando como ese ya está en la lista de variables PATH).
Si desea buscar solo en la variable de ruta de comando, puede usar:
Si, por otro lado, desea encontrar todas las copias de un archivo en un árbol de directorios, puede usar:
Finalmente, WHERE encontrará comandos y cualquier archivo con una extensión de la variable PATHEXT sin incluir la extensión. Todos los demás archivos deben especificarse exactamente o con comodines.
Tomemos, por ejemplo, los archivos "dxdiag.exe" y "dxdiagn.dll". Tenga en cuenta el siguiente comando y su salida:
Logra 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).
por otro lado, no devuelve ningún resultado, porque ".dll" no está en PATHEXT.
En este caso, observe el resultado que nos proporciona agregar un comodín:
Devuelve con éxito todas las versiones de dxdiagn.dll.
Para obtener más información, use "WHERE /?". ¡Espero que esto ayude!
fuente
where where
C:\Windows\System32\where.exe
:)uso
dir
:la
cd \
parte lo cambia a la raíz del disco, para garantizar que la búsqueda comience en la parte superior de la jerarquía.fuente
Tenga en cuenta que algunas cosas pueden ser un poco diferentes para PowerShell:
fuente
Frustrante que no está integrado como un simple comando.
Sin embargo, hay varias soluciones, una de las cuales es un archivo por lotes .
Cree un archivo por lotes (which.bat) de la siguiente manera:
Esto se ve en el directorio local, tomará un parámetro de nombre de archivo con o sin una extensión, y devolverá la primera coincidencia del directorio actual o en la RUTA.
Luego ejecútelo como
which cmd.exe
para encontrar el cmd.exe que se ejecutará si escribecmd
.fuente
En Windows, puede utilizar la utilidad gratuita Todo el motor de búsqueda para buscar instantáneamente cualquier archivo por nombre completo o parcial (si su disco duro está formateado en ntfs).
fuente
Si solo desea cuál , el proyecto GnuWin32 tiene un montón de utilidades Unix con instaladores individuales.
fuente
En PowerShell
Puede convertir esto fácilmente en un Cmdlet.
Otra forma de lograr esto, como se sugiere en una edición:
fuente
Si solo necesita la ruta para iniciarlo, a menudo es mejor usar el comando de inicio. Por ejemplo, puede usar "start chrome.exe" para iniciar Chrom {e | ium}, independientemente de dónde esté instalado.
fuente
Heh, solo tengo que publicar este archivo por lotes de un revestimiento de Windows:
Una prueba:
No es una línea si se incluye el código
setlocal enableextensions
yendlocal
, que son necesarios para los usuarios que no tienen habilitadas las extensiones de forma predeterminada.fuente