¿Cómo se ejecuta un programa que no está en mi camino? [duplicar]

57

Posible duplicado:
¿Por qué puedo ejecutar un programa que no está en mi variable de entorno PATH?

Estaba enseñando a un compañero de trabajo acerca de% PATH% y descubrí que si ejecuto "Firefox" funciona, pero me sorprendió ver que no estaba en mi camino.

¿Qué me estoy perdiendo?

Mateo
fuente
2
Depende del contexto. Si está ingresando "firefox" desde una línea de comando, entonces firefox.exe debe estar en la ruta o en las carpetas Windows o Windows \ System32. Si ingresa "Firefox" en el cuadro de diálogo Ejecutar, se utiliza el registro de rutas de aplicaciones, por lo que firefox.exe se registra allí.
boot13
Gracias boot13, no conocía las claves de registro de App Paths.
Mateo

Respuestas:

101

Si está intentando ejecutar un ejecutable especificando solo su nombre, Windows busca el archivo en las siguientes ubicaciones :

  1. El directorio de trabajo actual.
  2. El Windowsdirectorio (sin subdirectorios se buscan).
  3. El Windows\System32directorio
  4. Directorios listados en la variable de entorno PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(también HKEY_CURRENT_USERdesde Windows 7)

Microsoft realmente recomienda "registrar" aplicaciones en la App Pathssubclave para evitar la necesidad de que las aplicaciones modifiquen la PATHvariable de entorno del sistema . El instalador de la aplicación registrará el ejecutable.

JC2k8
fuente
3
Una de las mejores respuestas a una pregunta que he visto. +1
Everett
Eso fue todo, gracias señor. Aprenda algo nuevo cada día.
Mateo
8
@Mathew De nada. Tenga en cuenta que la subclave "Rutas de aplicación" también existe en la sección HKCU para aplicaciones que se instalaron para un solo usuario .
JC2k8
1
Es por eso que nunca tuve que jugar con el PATH hasta que pasé del desarrollo .NET al desarrollo Java. ¡Realmente nunca consideré por qué todo en el desarrollo de .NET "simplemente funciona"!
Stephen Swensen
2
Esto solo es cierto para el cuadro de diálogo Ejecutar de Windows, en cmd.exe y powershell solo se utilizan del 1. al 4. Consulte el comentario de boot13.
Alexander