Modificar/crear variables de usuario o sistema en Windows

En una de las prácticas de clase, tuvimos que modificar la variable de entorno PATH, para añadir una nueva ruta a la utilidad du. La manera más común de hacerlo, si queremos que el PATH permanezca, incluso después de reiniciar el ordenador, es añadir esa nueva ruta desde la interfaz gráfica:

variable_interfaz

Pero, aquí surge la pregunta de si puede hacerse de otra forma, y la respuesta es afirmativa, así que el objetivo de esta entrada es explicar cómo realizarlo desde la línea de comandos, y para ello voy a contemplar dos posibilidades:
 
1. Mediante el comando setx podemos crear o modificar nuestras variables de entorno (tanto las del sistema como las del usuario).

Dicho comando guarda los cambios en el registro, de forma que estén disponibles incluso después de reiniciar el ordenador.

La sintaxis del comando setx es la siguiente:

setx variable[parámetro/s] valor

 

De forma predeterminada, la variable será solamente válida para el usuario actual, es decir, se guardará en el subárbol HKEY_CURRENT_USER del registro.

Si por el contrario, queremos que la variable esté disponible en el equipo local, debemos poner el parámetro /m para que se guarde en el subárbol HKEY_LOCAL_MACHINE.

A modo de ejemplo, para ejecutar du desde cualquier directorio activo (la carpeta con la utilidad du se encuentra en el escritorio), modificaré la variable PATH añadiendo la nueva ruta:

 

Variable de usuario

C:\Users\iso>setx PATH "C:\Users\iso\Desktop\DU"

Variable del sistema

C:\Users\iso>setx PATH /m "%path%;C:\Users\iso\Desktop\DU"

*Nota: las variables creadas, o modificadas, no estarán disponibles en el cmd actual. Para que lo estén solamente tenemos que abrir un nuevo cmd.


2. Otra forma de hacerlo, es añadiendo “manualmente” la variable en el registro, con el comando reg.

La sintaxis es la siguiente:

REG ADD Clave [/v Valor | /ve] [/t Tipo][/s Separador][/d Datos] [/f]

*Nota: con el parámetro /f forzamos la sobreescritura.

 

Variable del sistema

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"/v PATH /t REG_EXPAND_SZ /d "%path%;C:\Users\iso\Desktop\DU" /f

Variable de usuario

reg add HKCU\Environment /v PATH /d "C:\Users\iso\Desktop\DU"/f

Para agregar las variables del sistema, es necesario ejecutar como administrador el cmd