Saltar al contenido principal

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).
  • 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 desdeEjemplo de variable
ProcesoNoProceso actual$env:MYVAR = "session"
UsuarioSíTodo proceso del usuario (nueva sesión)Set-Variable USER vía GUI o PowerShell
MáquinaSí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 : setx no modifica la sesión actual — guarda para futuras sesiones.

Buenas prácticas​

  1. Nombrar en MAYÚSCULAS y usar _ para separar palabras.
  2. Limitar el tamaño de PATH: demasiado largo puede romper algunos programas.
  3. Documentar en un script o README cualquier modificación persistente.
  4. Respaldar el estado antes de grandes modificaciones (exportar el registro).
  5. 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 setx ofrecen formas potentes de leer, definir y eliminar estas variables.
  • ¡Siempre pruebe en VM y documente sus cambios!