¿Por qué no puedo usar% USERPROFILE% en% PATH%?

6

En mi máquina con Windows 7, usando la herramienta Propiedades del sistema> Variables de entorno , intento agregar %USERPROFILE%\Bina la variable del sistema PATH. Por alguna razón, eso no funciona, aunque %SystemRoot%\system32funciona bien.

Cuando intento ejecutar comandos desde la consola, no se encuentran los archivos en mi carpeta Bin, a pesar de que se encuentran los archivos en la System32carpeta.

La única diferencia entre UserProfiley SystemRootque puedo ver es que la primera es una variable de usuario, mientras que la segunda es una variable del sistema.

echo %USERPROFILE%\Bincede c:\Users\zano, y si agrego c:\Users\zano\Binexplícitamente, todo funciona bien.

¿Cuál es el problema aquí?

Zano
fuente

Respuestas:

12

Las variables del sistema se establecen antes que las variables de usuario. En consecuencia, en el momento en que se establecen las variables del sistema, ninguna de sus variables de usuario existe todavía.

Usted puede ser capaz de crear una nueva variable usuario llamado PATH y ponerlo en " %USERPROFILE%\Bin;%PATH%". No lo he probado, pero puede hacer lo que quieras. Sin embargo, el PERFIL DE USUARIO aún no está configurado, por lo que es posible que deba codificar la ruta en su variable de usuario, pero al menos no afectará a otros usuarios en la computadora.

Stephen Jennings
fuente
5

Stephen Jennings tenía razón, pero solo un poco de claridad. En Windows, si la ruta de la variable del usuario existe, se agrega automáticamente a la ruta de la variable del sistema. La ruta de la variable de usuario puede usar% UserProfile% mientras que la variable del sistema obtiene el texto literal "% UserProfile%".

Por lo tanto, crear la variable de usuario "Ruta" y establecerlo en% UserProfile% \ Bin fue todo lo que se necesitaba.

Ejemplo 1:

Ruta variable del sistema = C: \ WINDOWS \ Ruta variable del usuario =% UserProfile% \ Bin

La ruta del usuario será

C: \ WINDOWS; C: \ Users \ User \ Bin

Ejemplo 2

Ruta de variable del sistema = C: \ WINDOWS \;% UserProfile% \ Bin

La ruta variable del usuario no está establecida en absoluto.

La ruta del usuario será

C: \ WINDOWS \;% UserProfile% \ Bin

No quieres el ejemplo 2.

Rodrick Williams
fuente
4

Similar a lo que dijo Stephen pero

Cree una variable de entorno de usuario llamada PATH. Dentro de esto, puede usar% USERPROFILE% correctamente: USERPROFILE se expande antes de que se procese la sección de usuario. Esta RUTA de usuario se agregará automáticamente a la ruta del sistema, por lo que no es necesario agregar la parte% PATH%.

p.ej

Variable del sistema: RUTA = c: \ ruta1 Variable de usuario RUTA =% PERFIL DE USUARIO% \ ruta2

Ruta resultante: RUTA = c: \ ruta1; C: \ Usuarios \ miusuario \ ruta2

Taoísta
fuente