¿Una forma más fácil de cambiar las variables de entorno en Windows 8? [duplicar]

27

Posible duplicado:
¿Qué son las RUTA y otras variables de entorno, y cómo puedo configurarlas o usarlas?

Sé que puedo editar mis variables de entorno en Windows 8 yendo a

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

Pero, sinceramente, esto es ridículamente complejo.

¿Hay alguna manera más fácil de cambiar las variables de entorno en Windows 8?

Por ejemplo, si solo quiero agregar una nueva carpeta a PATH, es realmente molesto seguir todos estos pasos. La interfaz de usuario también apesta, porque es realmente doloroso editar valores variables largos con la entrada de texto pequeña.

Requisito 1: necesito que los cambios persistan (por ejemplo, cuando uso seten la consola, los cambios se pierden cuando la cierro)

Requisito 2: Prefiero una solución que no implique la instalación de piezas adicionales de software, ya que este es el tipo de problema que encuentro cada vez que configuro una nueva caja de Windows.

jsalonen
fuente
Nice post sobre el tema: windows-commandline.com/set-path-command-line
Royi

Respuestas:

32

¿Has explorado el comando set y setx ? Con ellos puedes establecer una variable persistente. Además, el valor se aplicará inmediatamente, no después del próximo inicio de sesión.

Ejemplo de SETcomando de windows :

Imprima la variable de entorno PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Use el comando set para establecer la variable PATH

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

El comando anterior solo se aplica a la ventana actual y el cambio se pierde cuando se cierra la ventana cmd.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Ejemplo de SETXcomando de windows :

Imprima la variable de entorno PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Use setx para establecer la variable de entorno:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Cierre y vuelva a abrir el terminal cmd, luego ejecute:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

Tienes que tener cuidado con las comillas dobles. Si deja que las comillas entren en su variable de ruta, podría romper algo. Sin embargo, son necesarios para especificar apéndices al% PATH% original.

Yury
fuente
1
¡Gracias por el consejo! Lo intenté setx PATH=%PATH%;;C:\testpero recibo un error de sintaxis :(
jsalonen
2
No hay signo = cuando se usa setx. ¿Setx /?
EBGreen
44
Sin argumentos "setx" establece la variable solo en el contexto del usuario. Para establecer en el contexto del sistema, use "setx / M". No ser consciente de esto puede confundirlo ya que "echo% PATH%" mostrará los valores del sistema y del usuario concatenados.
Vituel
Tenga en cuenta que debe reiniciar el shell después de realizar este cambio para que tenga efecto.
Doug
nota menor: set path= ~ echo %PATH% [ set pathmuestra también el valor de PATHEXT]
gerryLowry
4

Los cambio en Powershell. Por ejemplo, para agregar una carpeta a la variable PATH, abra powershell y luego:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

Eso lo cambiaría para todos los usuarios. Para cambiarlo solo para el usuario que ejecuta el comando, cambie el último parámetro a 'Usuario'. O simplemente para cambiarlo temporalmente en esta sesión:

$env:Path += ';C:\temp'
EBGreen
fuente
¡Excelente! ¿Cómo se hace la concatenación $ env: Path + '; C: \ Temp' en el símbolo del sistema? Las soluciones de Set & Setx aquí explican cómo configurar la ruta completa en el símbolo del sistema, pero ninguna explica cómo APENDER algo a la ruta existente.
johny por qué
Aquí se explica cómo APENDER algo a la ruta existente en un símbolo del sistema. / M se usa para alterar la variable SYSTEM, en lugar de la variable USER. Las citas se usan porque "Mi carpeta" contiene espacios: setx PATH "% PATH%; C: \ My Folder" / M
johny why
El único problema con el uso del símbolo del sistema es el límite de 255 caracteres, y es probable que la RUTA del sistema exceda eso (especialmente si agrega más directorios). Por lo tanto, Powershell es el camino a seguir (podría estar equivocado, pero creo que no hay limitación de recuento de caracteres con Powershell).
johny por qué
3

Es bastante fácil en la línea de comando:

set MyVar=HelloWorld

(para llegar a la línea de comando, escriba cmddesde la pantalla de inicio>.)

Para ver una variable:

echo %MyVar%

Use setxpara establecer permanentemente una variable. La sintaxis es ligeramente diferente. Intente buscar aquí , o hay muchos otros sitios que le dirán cómo usarlo.

ACarter
fuente
Sí, gracias, ya lo sé, pero el problema es que si haces cambios de esta manera no persisten, es decir, cuando cierro y vuelvo a abrir la línea de comandos, las variables vuelven a los valores predeterminados. Actualicé mi pregunta para reflejar esto, lo siento.
jsalonen
¿Sabes si puedo hacer algo setque persista?
jsalonen
1
setx es para cambios permanentes
EBGreen
¿Hay alguna forma de establecer la variable solo hasta el próximo reinicio? De lo contrario, si uso set de otro programa (digamos un comando del sistema operativo de Python o MATLAB), ¿se mantendrá mientras la sesión del programa esté abierta?
Royi