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 presione CTRL
+ SHIFT
+ ENTER
y confirme el cuadro de diálogo UAC.
Para agregar nuevos valores a la ruta, ahora puede ingresar
setx path "%path%;yournewpath" /m
¡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