Tengo dos variables definidas por el usuario:
ANT_HOME establecido en% USERPROFILE% \ Developer \ Tools \ Apache \ Apache Ant \ apache-ant-1.8.2 JAVA_HOME establecido en C: \ Archivos de programa \ Java \ jdk1.6.0_23
Y quiero agregar esas rutas a la variable Sistema para poder acceder a los ejecutables en sus carpetas bin. Lo intenté
RUTA establecida en [otras rutas];% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Sin embargo, eso no funciona. Cuando abro un símbolo del sistema y echo% PATH%, las variables de usuario no se expanden . Entonces, la ruta solo muestra el literal,;% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Me parece recordar que esto funciona bien en mis viejos sistemas Windows XP. ¿Cómo configuro esto en Windows 7?
windows-7
environment-variables
Michael Prescott
fuente
fuente
Respuestas:
ACTUALIZACIÓN NO.2 - Ahora a la pregunta real : ¿Por qué las variables anidadas y creadas por el usuario no se expanden?
Hay algunos problemas generales relacionados con la expansión variable en Windows. Ya me he encontrado con el mismo problema y no he encontrado circunstancias claras y reproducibles: el nivel de recursión en el que falla la expansión no es consistente, los caracteres especiales no parecen jugar un papel, etc.
La única solución viable que encontré es agregar variables de nivel de recursión por nivel de recursión. Eso significa: intente eliminar todas las variables que desea anidar entre sí (incluidas las llamadas de PATH a las variables definidas por el usuario), y luego comience desde cero. Defina sus variables básicas (etc. ANT-HOME), comprométase, verifique si está expandido, si es así, continúe con el siguiente nivel de compromiso, verifique ... tiene la idea.
RESPUESTA ACTUALIZADA: definición de variables de entorno permanentes utilizando la CLI y la GUI : desplácese hacia abajo para obtener la respuesta original
Método GUI:
En Windows 7, simplemente escriba "sistema" en el indicador META y verá una entrada "Editar las variables de entorno del sistema". Desde allí, haga clic en "Variables de entorno". Allí, puede editar la variable PATH del sistema (lista inferior) o agregar / editar una nueva variable PATH a las variables de entorno del usuario.
Método de línea de comando:
Para cambiar las variables de entorno de forma permanente, debe usar el comando SETX en la línea de comandos de Windows. A diferencia de otras versiones de Windows, viene integrado con Windows 7. Su sintaxis difiere mucho de SET, pero también es potente. Sin embargo, tendrá que tener un poco de cuidado, es fácil hacer un lío de sus variables con SETX.
Por defecto, cambia las variables de usuario . Puede tener una variable de entorno de usuario PATH que coexista felizmente con la variable PATH del sistema. Si aún no lo tiene definido, hágalo escribiendo:
SETX PATH yourpath
También puede agregar un valor a la variable de sistema PATH. Para hacer esto, primero debe abrir una línea de comando con privilegios de administrador. Para hacer esto, presione la tecla Meta (Windows), escriba
cmd
y presioneCTRL
+SHIFT
+ENTER
y confirme el cuadro de diálogo UAC.Para agregar nuevos valores a la ruta, ahora puede ingresar
¡Es importante seguir esa sintaxis! Si no incluye primero% path%, todos los valores existentes de path se perderán y se reemplazarán solo con su nueva ruta. El modificador / m al final establece la variable en el entorno del sistema.
Tenga en cuenta que deberá abrir una nueva línea de comando para utilizar su nueva variable.
También hay una referencia completa para SETX en TechNet .
ANTIGUA RESPUESTA El comando SET actualiza las variables solo durante la sesión de línea de comando actual.
La sintaxis correcta para agregar un valor a una variable es 'set [variable] =% [variable]%; [nuevo valor] `
Tenga en cuenta que a la izquierda del signo igual, ¡debe omitir los signos de porcentaje!
Fuente: referencia de línea de comandos de TechNet para Windows Server
fuente
Un artículo de soporte de Microsoft de 2007, número 329308 , describe un error en Shell32.dll, que es la causa de este problema. La solución es agregar una
PATH
variable a la lista de variables de usuario que se establece enEsto solucionó el problema. No me gusta configurarlo solo para mi usuario, pero de alguna manera mi sistema presenta síntomas de este viejo error y todavía no veo otra respuesta mejor.
fuente