Variables de entorno
Contexto e historia
Las variables de entorno son un mecanismo esencial en los sistemas operativos modernos, que permiten almacenar información de configuración y transmitir parámetros a los procesos. Fueron introducidas en los primeros sistemas Unix y adoptadas por Windows con la llegada de Windows NT.
Por qué usar variables de entorno
-
Configuración global
- Rutas de acceso a ejecutables (
PATH), directorio temporal (TEMP/TMP), idioma y formato regional (LANG).
- Rutas de acceso a ejecutables (
-
Aislamiento y portabilidad
- Scripts y aplicaciones pueden leer sus parámetros sin codificar rutas absolutas.
-
Propagación a procesos hijos
- Toda variable definida en un proceso padre es heredada por sus procesos hijos.
Tipos y alcance
| Alcance | ¿Persistente? | Accesible desde | Ejemplo de variable |
|---|---|---|---|
| Proceso | No | Proceso actual | $env:MYVAR = "session" |
| Usuario | Sí | Todo proceso del usuario (nueva sesión) | Set-Variable USER vía GUI o PowerShell |
| Máquina | Sí | Todo usuario y todo proceso (nueva sesión) | Set-Variable MACHINE |
- Sesión (proceso): modificación temporal, desaparece al cerrar.
- Usuario: almacenada en el registro bajo
HKCU:\Environment. - Sistema (Máquina): almacenada en el registro bajo
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
Gestión mediante la interfaz gráfica
Busque «Entorno» en la configuración de Windows.
El proveedor Env en PowerShell
PowerShell expone las variables de entorno como un «PSDrive» llamado Env:.
Listar y leer
# Listar todas las variables de entorno
Get-ChildItem Env:
# Leer una variable específica
Get-Item Env:PATH
# o
$env:PATH
Utilidad setx
El binario de Windows setx permite escribir rápidamente:
# Define para el usuario (por defecto)
setx LOG_LEVEL "DEBUG"
# Define para la máquina (con /M, requiere Admin)
setx NODE_ENV "production" /M
Note :
setxno modifica la sesión actual — guarda para futuras sesiones.
Buenas prácticas
- Nombrar en MAYÚSCULAS y usar
_para separar palabras. - Limitar el tamaño de
PATH: demasiado largo puede romper algunos programas. - Documentar en un script o README cualquier modificación persistente.
- Respaldar el estado antes de grandes modificaciones (exportar el registro).
- Prueba en VM: valide los scripts en sus máquinas virtuales antes del despliegue.
Para recordar
- Las variables de entorno son un mecanismo fundamental para transmitir parámetros a los procesos.
- Tienen tres alcances: Sesión, Usuario, Máquina.
- PowerShell y
setxofrecen formas potentes de leer, definir y eliminar estas variables. - ¡Siempre pruebe en VM y documente sus cambios!