Cuando actualizo mi RUTA utilizando el cuadro de diálogo Variables de entorno incorporado, o algo así como el Editor de ruta , y luego abro un símbolo del sistema, los cambios en mi RUTA no se registrarán en la consola, dependiendo de dónde estaba el símbolo del sistema empezó desde.
Por ejemplo, si edito mi RUTA y luego inicio cmd.exe desde el Menú Inicio o un acceso directo en el Escritorio, entonces mi RUTA se ve bien: se ha actualizado con éxito; sin embargo, si inicio cmd.exe desde un acceso directo en cualquier lugar que no sea el Menú de inicio o el Escritorio, la nueva RUTA no se lee y en su lugar obtengo la ruta anterior. Es muy extraño.
He intentado ejecutar el símbolo del sistema desde un acceso directo en el escritorio y funciona bien; Luego copio exactamente el mismo acceso directo a una subcarpeta en el escritorio, y aparece el problema PATH no actualizado.
Me doy cuenta de que esto es bastante difícil de explicar, así que creé un screencast para mostrar este problema en acción .
Aquí hay una captura de pantalla del acceso directo del símbolo del sistema como se ve en ese screencast:
Esto está en Windows Vista Home Premium SP2.
fuente
explorer
proceso principal detectará los cambios en el entorno del Registro (al que pertenece el cuadro de diálogorundll32
) y actualizará su propio entorno automáticamente. (Al menos en XP lo hace). Es por eso que los cambios son visibles al comenzarcmd
desde un acceso directo.echo $PATH
no estaba funcionando. Supuse que estaría fresco, pero no salió bien hasta que cerré todas las pestañas de Git Bash y ConEmu.Como sugiere Rowland, al comenzar un nuevo proceso, leerá las variables de entorno del proceso que lo está iniciando. Por lo tanto, al iniciar un símbolo del sistema desde el menú Inicio o el escritorio , lee las variables de entorno desde las
explorer.exe
cuales, como sugiere Grawity, detecta cambios en la configuración del entorno en el registro y, por lo tanto, veo mi nueva RUTA en las indicaciones de comando iniciadas desde Escritorio o menú de inicio.La razón por la que no veo actualizaciones de mi RUTA en el screencast que publiqué es porque inicialmente había lanzado una ventana del explorador usando FARR para hacer que
FindAndRunRobot.exe
el proceso principal. FARR no detecta automáticamente los cambios en el entorno y, por lo tanto, los procesos secundarios generados a partir de él no recogen la nueva RUTA. También tenía la opción ' Iniciar carpetas de Windows en un proceso separado ' configurada en Explorer, lo que significa que todas las ventanas explorer.exe que abrí después de la inicial abierta por FARR donde también hijos de FARR .Al desactivar la opción ' Iniciar ventanas de carpeta en un proceso separado ',
explorer.exe
no se crean nuevos procesos en FARR, lo que resuelve mi problema. Sin embargo, también lanzo ventanas de consola y otras cosas directamente desde FARR; estos también obtienen la configuración del entorno anterior. Si reinicio FARR, la nueva configuración del entorno se propaga.Aquí hay una captura de pantalla de Process Explorer que muestra los procesos generados desde FARR. Ninguno de estos procesos recibe la nueva configuración del entorno desde el nivel superior a
explorer.exe
menos que reinicie FARR:fuente