"Las variables de entorno son como las llaves maestras de tu máquina: abren puertas a recursos globales sin pedir permiso cada vez."
¿Alguna vez te has preguntado por qué tu máquina sabe dónde buscar ejecutables o cómo accede a directorios especiales sin que le digas cada paso? Las variables de entorno en Windows son esa magia invisible que hace todo fluir. En este artículo, te llevo de la mano para entenderlas, crearlas, manipularlas y hasta borrarlas, todo desde la consola. Es como tener un control remoto universal para tu sistema operativo.
Vamos a expandir un poco: imaginá que estás en un taller mecánico digital. Las variables normales son herramientas que solo usás en un proyecto específico, pero las de entorno son las que todo el taller comparte, como el compresor de aire o la caja de herramientas principal. Acá te muestro ejemplos prácticos con scripts que podés probar ya mismo. Si querés el curso completo, chequeá el repositorio en GitHub. Esta es la versión resumida, pero cargada de valor para que no te aburras.
Usá SET
para ver, crear o modificar variables temporales. Para persistentes, SETX
es tu amigo (¡cuidado, requiere privilegios para el sistema!). Acá expandimos con ejemplos reales.
Usá SET
sin argumentos para listar todo. Es como un inventario completo de tu taller.
Variables como %HOMEDRIVE%
o %USERPROFILE%
te llevan directo a carpetas clave, ahorrando tiempo en navegación.
El famoso %PATH%
es donde Windows busca comandos. Visualizalo con path
o SET PATH
.
Colocá scripts en %SystemRoot%\System32
para hacerlos globales, como un atajo personalizado.
Usá GUIDs o rutas especiales para abrir vistas únicas, como la red o documentos.
Con SETX
, hacelas durar entre sesiones. Para el sistema entero, agregá /M
.
Usá SET
para temporales o REG delete
para persistentes. ¡Siempre con respaldo!
@echo off
:: Obtener todas las variables definidas
echo ========================================
echo OBTENER VARIABLES DE ENTORNO
echo ========================================
echo.
echo Mostrando todas las variables definidas:
SET
echo.
echo Variables dinámicas:
echo CD: %CD%
echo RANDOM: %RANDOM%
echo DATE: %DATE%
echo TIME: %TIME%
echo.
echo Combinación: %DATE% - %TIME%
echo.
echo Variable OneDriveConsumer:
SET OneDriveConsumer
echo.
echo Creando variable personalizada:
SET Jerson=%OneDriveConsumer%
echo Variable Jerson creada: %Jerson%
echo.
echo Nota: Estas variables locales dejan de existir al salir del script
echo.
pause
Este script es como un escáner total: lista todas las variables, muestra dinámicas como %RANDOM%
(útil para generar números aleatorios en scripts) y crea una temporal para probar. Probá ejecutándolo y verás cómo %DATE%
y %TIME%
se actualizan en tiempo real.
@echo off
:: Ver el contenido de la variable PATH
echo ========================================
echo VER CONTENIDO DE PATH
echo ========================================
echo.
echo Primera forma - usando SET:
echo %PATH%
echo.
echo Segunda forma - usando comando path:
path
echo.
echo La variable PATH contiene las rutas donde Windows busca ejecutables
echo.
pause
Acá ves el %PATH%
en acción. Expandiendo: si agregás una carpeta a %PATH%
, cualquier ejecutable ahí se vuelve global. Por ejemplo, si creás un script en "C:\MisComandos" y lo añadís con SETX PATH "%PATH%;C:\MisComandos" /M
, ¡boom! Lo llamás desde cualquier consola.
@echo off
:: Acceder en distintos directorios mediante variables de entorno
echo ========================================
echo ACCESO A DIRECTORIOS CON VARIABLES
echo ========================================
echo.
echo Accediendo a ALLUSERSPROFILE:
echo %ALLUSERSPROFILE%
echo.
echo Abriendo HOMEDRIVE con start:
start %HOMEDRIVE%
echo HOMEDRIVE abierto con start
echo.
echo Abriendo HOMEDRIVE con explorer:
explorer %HOMEDRIVE%
echo HOMEDRIVE abierto con explorer
echo.
echo Variables útiles para navegación:
echo %ALLUSERSPROFILE% - Perfil de todos los usuarios
echo %HOMEDRIVE% - Unidad del directorio home
echo %USERPROFILE% - Perfil del usuario actual
echo.
pause
Esto te ahorra clics: abrí %USERPROFILE%
para ir directo a tu carpeta de usuario. Expandiendo: en entornos empresariales, usá %ALLUSERSPROFILE%
para configs compartidas, asegurando idempotencia al desplegar scripts que dependan de rutas fijas.
@echo off
:: Crear un comando personalizado
echo ========================================
echo CREAR COMANDO PERSONALIZADO
echo ========================================
echo.
echo Creando comando helloworld.bat en System32...
echo @echo off > C:\Windows\System32\helloworld.bat
echo echo Hello World! >> C:\Windows\System32\helloworld.bat
echo Comando helloworld creado
echo.
echo Probando el comando:
helloworld
echo.
echo Ahora puedes usar 'helloworld' desde cualquier terminal
echo.
pause
¡Creá tu propio comando! Expandiendo: esto es genial para automatización. Imaginate un "backup" que copie archivos a %USERPROFILE%\Backups
– añadilo a %PATH%
y ejecutalo desde cualquier lado.
@echo off
:: Navegación especial con explorer
echo ========================================
echo NAVEGACIÓN ESPECIAL
echo ========================================
echo.
echo Llegar al directorio Documents:
explorer shell::: BB06C0E4-D293-4f75-8A90-CB05B6477EEE}
echo Documents abierto
echo.
echo Abrir red:
explorer \\
echo Red abierta
echo.
echo Abrir disco local C:
explorer \
echo Disco local C: abierto
echo.
echo Comandos especiales de navegación:
echo shell::: BB06C0E4-D293-4f75-8A90-CB05B6477EEE} - Documents
echo \\ - Red
echo \ - Disco local C:
echo.
pause
Usá GUIDs para accesos rápidos. Expandiendo: esto es clave en scripting para abrir vistas específicas, como redes en entornos corporativos, optimizando flujos de trabajo.
@echo off
:: Crear variables de entorno persistentes
echo ========================================
echo CREAR VARIABLES DE ENTORNO
echo ========================================
echo.
echo Creando variable a nivel de usuario:
SETX CursoAWC "Curso de Administración de Windows desde la Consola"
echo Variable CursoAWC creada (usuario)
echo.
echo Creando variable a nivel de sistema:
SETX CursoAWC "Curso de Administración de Windows desde la Consola" /M
echo Variable CursoAWC creada (sistema)
echo.
echo Creando variable MYPATH a nivel de usuario:
SETX MYPATH "%PATH%"
echo Variable MYPATH creada (usuario)
echo.
echo Creando variable MYPATH a nivel de sistema:
SETX MYPATH "%PATH%" /M
echo Variable MYPATH creada (sistema)
echo.
echo Las variables se guardan en el registro y persisten entre sesiones
echo Verificar en una nueva sesión de consola o desde interfaz gráfica
echo.
pause
Persistencia pura: estas sobreviven reinicios. Expandiendo: usalas para entornos de desarrollo, como setear %JAVA_HOME%
para que tus apps Java encuentren el JDK sin drama.
@echo off
:: Eliminar variables de entorno
echo ========================================
echo ELIMINAR VARIABLES DE ENTORNO
echo ========================================
echo.
echo ADVERTENCIA: Este script elimina variables de entorno
echo Ejecutar como Administrador para variables de sistema
echo.
echo Eliminación temporal de MYPATH:
SET MYPATH=
echo MYPATH eliminada temporalmente
echo.
echo Eliminación persistente a nivel de usuario:
REG delete "HKCU\Environment" /v MYPATH /f
REG delete "HKCU\Environment" /v CursoAWC /f
echo Variables eliminadas (usuario)
echo.
echo Eliminación persistente a nivel de sistema:
REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V MYPATH
REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V CursoAWC
echo Variables eliminadas (sistema)
echo.
echo Verificar eliminación desde interfaz gráfica
echo.
pause
Limpieza total. Expandiendo: siempre respaldá antes, ya que borrar %PATH%
podría romper comandos. Usá REG
para precisión quirúrgica en el registro.
%PATH%
.SETX
.Estos son tu arsenal para experimentación. Probá en un entorno seguro como Vagrant Windows 10 RDP Lab.
%PATH%
con cabeza: agregá solo lo necesario para evitar ralentizaciones.%RANDOM%
para scripts únicos, como nombrar backups.SET
regularmente para depurar configs.SET > backup.txt
antes de modificar.%SystemRoot%
.%PATH%
para herramientas globales en servidores.%APPDATA%
para políticas de retención de datos.%PYTHONPATH%
) sin reinstalar.Con estos conocimientos, ya podés jugar con variables de entorno como un artesano digital, diferenciando locales de globales y manejando persistencia. ¿Querés más? El curso en GitHub tiene todo. ¡Dale caña a la consola y dominá tu máquina!
Autor: Jerson Martínez
Blog: Crashell
With supporting text below as a natural lead-in to additional content.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.