Digamos que tengo un programa X.EXE
instalado en la carpeta c:\abcd\happy\
del sistema. La carpeta está en la ruta del sistema. Ahora suponga que hay otro programa en el sistema que también se llama X.EXE pero está instalado en la carpeta c:\windows\
.
¿Es posible descubrir rápidamente desde la línea de comandos que si escribo X.EXE
cuál de los dos X.EXE
se lanzará? (pero sin tener que buscar ni mirar los detalles del proceso en el Administrador de tareas).
¿Tal vez algún tipo de comando incorporado, o algún programa que pueda hacer algo como esto? :
detect_program_path X.EXE
windows
command-line
path
Zabba
fuente
fuente
Respuestas:
Usa el
where
comando. El primer resultado en la lista es el que se ejecutará.De acuerdo con esta publicación de blog ,
where.exe
se incluye con Windows Server 2003 y versiones posteriores, por lo que esto debería funcionar con Vista, Win 7 y otros.En Linux, el equivalente es el
which
comando, por ejemplowhich ssh
.fuente
listdlls -d foo.dll
para ver todos los procesos que tienen el módulo cargado y la ruta completa al módulo cargado. Alternativamente, puede hacer una búsqueda de archivos de Windows para el nombre del archivo.Aquí hay un pequeño script de cmd que puede copiar y pegar en un archivo llamado algo así como
where.cmd
:fuente
Como el hilo mencionado en el comentario,
get-command
en powershell también puede solucionarlo. Por ejemplo, puede escribirget-command npm
y la salida es la siguiente:fuente
(get-command npm).Source
responderá solo con la ruta a npm (por ejemplo) en lugar de la tabla completa de todas las propiedades.