Environment Variables - Windows (CMD)

Las Environment Variables son configuraciones que almacenan información accesible por usuarios y aplicaciones.
Se usan para:


🔹 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)