Environment Variables - Windows (CMD)
Las Environment Variables son configuraciones que almacenan información accesible por usuarios y aplicaciones.
Se usan para:
-
🏃♂️ Acelerar scripts y programas.
-
📂 Referenciar rutas y datos del sistema.
-
🛠️ Configuración de entorno a nivel de usuario, sistema o proceso.
🔹 Qué es una Environment Variable
Se escriben así:
%VARIABLE_NAME%
✅ Pueden tener mayúsculas, minúsculas, números y espacios.
❌ No pueden comenzar con un número ni contener = en su nombre.
🔹 Alcance (Scope) de las Variables
| 🌍 Scope | 🔑 Accesible por | 💡 Ejemplo |
|---|---|---|
| Global | Todos los usuarios | %WINDIR% |
| Local | Sólo el usuario actual o proceso | %SECRET% creado por Alice |
Ejemplo:
Global
C:\Users\alice> echo %WINDIR%
C:\Windows
C:\Users\bob> echo %WINDIR%
C:\Windows
Local
C:\Users\alice> set SECRET=HTB{123}
C:\Users\alice> echo %SECRET%
HTB{123}
C:\Users\bob> echo %SECRET%
%SECRET%
🔹 Alcance según Windows
| Scope | Descripción | Permisos | Ubicación en el registro |
|---|---|---|---|
| System | Variables del OS, accesibles por todos | Admin local / DC Admin | HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment |
| User | Variables del usuario activo | Usuario, Admin | HKCU\Environment |
| Process | Variables temporales del proceso | Proceso actual / hijo | Memoria del proceso |
🔹 Ver variables
Usando set
set
set %SYSTEMROOT%
🔹 Muestra todas las variables o el valor de una específica.
Usando echo
echo %PATH%
🔹 Muestra únicamente el valor de la variable.
🔹 Crear Variables
Temporal (actual sesión)
set DCIP=172.16.5.2
echo %DCIP%
Permanente (registro, futuras sesiones)
setx DCIP 172.16.5.2
✅ Cambios permanentes disponibles en nueva sesión de CMD.
🔹 Editar Variables
setx DCIP 172.16.5.5
echo %DCIP%
🔹 Eliminar Variables
setx DCIP ""
set DCIP
echo %DCIP%
✅ El valor se elimina y la variable deja de existir en futuras sesiones.
🔹 Variables importantes a conocer
| Variable | Descripción |
|---|---|
%PATH% |
Directorios donde buscar ejecutables |
%OS% |
Sistema operativo actual |
%SYSTEMROOT% |
Carpeta principal de Windows (C:\Windows) |
%LOGONSERVER% |
Servidor de inicio de sesión del usuario (útil para ver si está en dominio) |
%USERPROFILE% |
Carpeta del usuario activo (C:\Users\{username}) |
%ProgramFiles% |
Carpeta de programas x64 |
%ProgramFiles(x86)% |
Carpeta de programas x86 (solo en hosts 64-bit) |