Un logotipo con el texto blog.marcnuri.com
English
Inicio»Operaciones»Windows: listar las variables de entorno (CMD, PowerShell)

Entradas Recientes

  • ¡Fabric8 Kubernetes Client 8.0 está disponible!
  • ¡Fabric8 Kubernetes Client 7.9 está disponible!
  • ¡Eclipse JKube 1.20 está disponible!
  • Project, Agent, Person: El Eje que Falta en Herramientas de Programación con IA
  • ¡Fabric8 Kubernetes Client 7.8 está disponible!

Categorías

  • Antiguo
  • Cloud Native
  • Desarrollo Backend
  • Desarrollo Frontend
  • Herramientas
  • Ingeniería de calidad
  • Inteligencia Artificial
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales
  • Reflexiones sobre Ingeniería

Archivos

  • septiembre 2026
  • julio 2026
  • junio 2026
  • mayo 2026
  • abril 2026
  • marzo 2026
  • febrero 2026
  • enero 2026
  • diciembre 2025
  • octubre 2025
  • septiembre 2025
  • julio 2025
  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • septiembre 2022
  • agosto 2022
  • julio 2022
  • junio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • enero 2021
  • diciembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • septiembre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • mayo 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • noviembre 2014
  • octubre 2014
  • marzo 2014
  • agosto 2012
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

Windows: listar las variables de entorno (CMD, PowerShell)

2008-04-30 en Operaciones etiquetado Windows / PowerShell por Marc Nuri | Última actualización: 2026-10-14
English version

Introducción

⁠

Para listar todas las variables de entorno en Windows, ejecuta set en el Símbolo del sistema (cmd) o Get-ChildItem Env: en PowerShell. Para mostrar o comprobar una sola variable, ejecuta echo %NOMBRE% en el Símbolo del sistema o $env:NOMBRE en PowerShell. Para ver las variables de usuario y del sistema que Windows guarda para los procesos nuevos, abre el diálogo Variables de entorno desde Propiedades del sistema (sysdm.cpl).

set, Get-ChildItem Env: y el diálogo Variables de entorno funcionan igual desde Windows XP, y siguen haciéndolo en Windows 11. En este artículo, te mostraré cómo listar todas las variables de entorno en Windows, mostrar una sola, distinguir las variables de usuario de las del sistema y leer el PATH, tanto desde la línea de comandos como desde la GUI de Windows. He comprobado cada comando con la documentación de Microsoft en octubre de 2026, para Windows PowerShell 5.1 y PowerShell 7.6.7.

  • Referencia rápida
  • Desde cmd
  • Desde PowerShell
  • Variables de usuario y del sistema
  • Desde la interfaz gráfica de usuario (GUI) de Windows
  • La variable PATH
  • Por qué no aparece una variable nueva

Referencia rápida: Símbolo del sistema y PowerShell

⁠
TareaSímbolo del sistema (cmd)PowerShell
Listar todassetGet-ChildItem Env:
Nombres que empiezan por JAVAset JAVAGet-ChildItem Env:JAVA*
Mostrar una variableecho %JAVA_HOME%$env:JAVA_HOME
Mostrar el PATHpath$env:Path -split ';'
Variables de usuario guardadasreg query HKCU\Environment[Environment]::GetEnvironmentVariables('User')
Variables del sistema guardadasreg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"[Environment]::GetEnvironmentVariables('Machine')

Cada proceso recibe su propia copia del entorno al arrancar: las variables del sistema (compartidas por todos los usuarios), tus variables de usuario y lo que haya añadido su proceso padre. Por eso set y Get-ChildItem Env: muestran lo que ve la ventana actual, que puede ser distinto de lo que Windows tiene guardado. En Windows, los nombres de las variables no distinguen entre mayúsculas y minúsculas: %PATH%, %Path% y $env:path se refieren a la misma variable.

Cómo listar todas las variables de entorno desde cmd

⁠

Abre una nueva ventana de comandos (Win+R, escribe cmd y pulsa enter) y escribe:

cmd.exe
set

La salida del comando es una lista de todas las variables de entorno con sus valores separados por un signo igual (=).

Captura de pantalla mostrando la salida del comando set en Windows XP
Captura de pantalla mostrando la salida del comando set en Windows XP

Desde la versión 22H2 de Windows 11, Terminal Windows es la consola predeterminada, así que cmd se abre en una pestaña de Terminal Windows. Los comandos son los mismos: dependen del shell (Símbolo del sistema o PowerShell), no de la ventana que lo aloja.

Cómo filtrar la salida de set

⁠

Si le pasas un nombre a set, solo lista las variables cuyo nombre empieza por él:

cmd.exe
set JAVA

Para buscar una palabra en cualquier parte de los nombres y los valores, pasa la salida a findstr con una tubería (|):

cmd.exe
set | findstr /i "path"

El comando muestra ahora únicamente las líneas que contienen la palabra path, como Path y PATHEXT. Añade la opción /i: findstr distingue entre mayúsculas y minúsculas por defecto, y en una instalación estándar de Windows la variable se llama Path, así que findstr "PATH" se la saltaría.

Captura de pantalla mostrando la salida del comando set|findstr en Windows XP
Captura de pantalla mostrando la salida del comando set|findstr en Windows XP

Cómo mostrar (echo) o comprobar una sola variable de entorno en cmd

⁠

Para mostrar el valor de una sola variable, escribe su nombre entre signos de porcentaje:

cmd.exe
echo %JAVA_HOME%

El Símbolo del sistema sustituye %JAVA_HOME% por el valor de la variable antes de ejecutar echo. Si la variable no está definida, el Símbolo del sistema deja el texto tal cual y muestra %JAVA_HOME%. Para comprobar si una variable está definida, por ejemplo en un archivo por lotes (batch), usa if defined:

cmd.exe
if defined JAVA_HOME (echo JAVA_HOME is set) else (echo JAVA_HOME is not set)

Cómo listar todas las variables de entorno desde PowerShell

⁠

PowerShell es el shell de línea de comandos y lenguaje de scripting más moderno de Windows, y expone las variables de entorno como una unidad llamada Env:. PowerShell 1.0 se publicó en noviembre de 2006 como descarga opcional para Windows XP, y Windows 7 fue el primer Windows de escritorio que lo incluyó. A fecha de octubre de 2026, Windows 10 y Windows 11 traen Windows PowerShell 5.1, que se abre con powershell, y PowerShell 7, multiplataforma, se instala junto a él, con el comando pwsh. Todos los comandos de esta sección funcionan en ambos.

PowerShell ofrece varias formas de listar todas las variables de entorno. La más sencilla es usar el cmdlet Get-ChildItem.

Usando Get-ChildItem

⁠

Abre una nueva ventana de PowerShell (Win+R, escribe powershell y pulsa enter) y escribe:

PowerShell
Get-ChildItem Env:

El comando muestra una lista de todos los nombres de variables de entorno y sus valores en formato de tabla.

Captura de pantalla de la salida del comando de PowerShell Get-ChildItem Env: en Windows XP
Captura de pantalla de la salida del comando de PowerShell Get-ChildItem Env: en Windows XP

La tabla recorta los valores largos, como el Path de la captura. Para verlos completos, ordena la lista por nombre y dale formato de lista:

PowerShell
Get-ChildItem Env: | Sort-Object Name | Format-List

También puedes filtrar por nombre con un comodín, o por valor con Where-Object:

PowerShell
Get-ChildItem Env:*JAVA*
Get-ChildItem Env: | Where-Object Value -like '*Java*'

Usando uno de los alias de Get-ChildItem

⁠

Escribir Get-ChildItem es un poco largo, por lo que PowerShell ofrece algunos alias para facilitar su uso. Puedes usar cualquiera de los siguientes comandos para obtener el mismo resultado:

  • gci Env:
  • dir Env:
  • ls Env: (el alias ls solo existe en Windows; PowerShell en Linux y macOS deja ls para el comando del sistema)
PowerShell
ls Env:

El comando muestra lo mismo que el comando Get-ChildItem Env:.

Captura de pantalla de la salida del comando de PowerShell ls Env: en Windows XP
Captura de pantalla de la salida del comando de PowerShell ls Env: en Windows XP

La principal ventaja del enfoque de PowerShell es que puedes proporcionar muchas opciones al cmdlet para personalizar su salida según tus necesidades.

Cómo obtener una sola variable de entorno en PowerShell

⁠

Para mostrar el valor de una sola variable, antepón $env: a su nombre:

PowerShell
$env:JAVA_HOME

La sintaxis del Símbolo del sistema no funciona aquí: en PowerShell, echo %JAVA_HOME% muestra el texto %JAVA_HOME% tal cual. Si la variable no existe, $env:JAVA_HOME no muestra nada; para comprobar si está definida, usa Test-Path, que devuelve True o False:

PowerShell
Test-Path Env:JAVA_HOME

También puedes leer una variable a través de .NET, algo práctico en scripts:

PowerShell
[Environment]::GetEnvironmentVariable('JAVA_HOME')

Cómo listar por separado las variables de entorno de usuario y del sistema

⁠

Windows guarda las variables que defines en dos sitios, y construye tu entorno al iniciar sesión a partir de ambos:

  • Variables del sistema: se aplican a todos los usuarios, y solo los administradores pueden cambiarlas. Windows las guarda en la clave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
  • Variables de usuario: se aplican solo a tu cuenta. Windows las guarda en la clave del registro HKEY_CURRENT_USER\Environment.

set y Get-ChildItem Env: muestran el resultado combinado, además de las variables que Windows define para cada sesión, como USERNAME y USERPROFILE, y cualquier cosa que hayas definido en la ventana actual. Para listar cada grupo por separado, pásale un destino (target) a GetEnvironmentVariables en PowerShell:

PowerShell
[Environment]::GetEnvironmentVariables('User')
[Environment]::GetEnvironmentVariables('Machine')

El destino puede ser Process (la sesión actual, el valor por defecto), User o Machine. La salida no está ordenada; para ordenarla por nombre, enumérala primero:

PowerShell
[Environment]::GetEnvironmentVariables('User').GetEnumerator() | Sort-Object Name

Desde el Símbolo del sistema, puedes leer las mismas claves del registro con reg query:

cmd.exe
reg query HKCU\Environment
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

reg query muestra los valores tal como están guardados, así que en el Path del sistema aparecen entradas como %SystemRoot%\system32 sin expandir.

Cómo consultar las variables de entorno desde la interfaz gráfica de usuario (GUI) de Windows

⁠

Si no necesitas usar esta salida en un script, o simplemente prefieres la GUI de Windows, puedes comprobar las variables de entorno desde la ventana Propiedades del sistema.

En Windows 11 y Windows 10, lo más rápido es escribir variables de entorno en la búsqueda del menú Inicio y abrir Editar las variables de entorno del sistema. La misma búsqueda también muestra Editar las variables de entorno de esta cuenta, que abre directamente el diálogo Variables de entorno, sin pedir permisos de administrador, para editar tus variables de usuario. También puedes llegar desde Configuración > Sistema > Información (Acerca de en Windows 10) > Configuración avanzada del sistema. El diálogo Ejecutar funciona en todas las versiones desde Windows XP: pulsa las teclas Win+R, escribe sysdm.cpl y pulsa enter.

Captura de pantalla del diálogo Ejecutar de Windows XP
Captura de pantalla del diálogo Ejecutar de Windows XP

A continuación, haz clic en la pestaña Opciones avanzadas (Advanced en la captura) y luego en el botón Variables de entorno (Environment Variables).

Captura de pantalla del diálogo Propiedades del sistema de Windows XP
Captura de pantalla del diálogo Propiedades del sistema de Windows XP

Se abrirá el diálogo Variables de entorno. La lista de arriba muestra las variables de usuario de tu cuenta, y la de abajo las variables del sistema. Necesitas permisos de administrador para cambiar las variables del sistema.

Captura de pantalla del diálogo Variables de entorno de Windows XP
Captura de pantalla del diálogo Variables de entorno de Windows XP

El diálogo muestra lo que Windows tiene guardado, no lo que ve una ventana de Símbolo del sistema o de PowerShell ya abierta: un valor que cambies aquí solo llega a los programas que inicies después.

Si editas variables de entorno a menudo, PowerToys, la colección gratuita de utilidades de Microsoft, incluye la utilidad Environment Variables, que lista las variables de usuario y del sistema, te permite editarlas y muestra los valores que se aplican, Path incluido.

Cómo ver la variable de entorno PATH

⁠

La variable PATH contiene la lista de directorios donde Windows busca los ejecutables, separados por punto y coma (;). En el Símbolo del sistema, el comando path sin argumentos la muestra, precedida de PATH=:

cmd.exe
path

El valor es una única línea muy larga, difícil de leer. En PowerShell, divídelo para mostrar un directorio por línea:

PowerShell
$env:Path -split ';'

El Path de una sesión combina el Path del sistema y tu Path de usuario. Para ver cada uno por separado, léelos con su destino:

PowerShell
[Environment]::GetEnvironmentVariable('Path', 'Machine') -split ';'
[Environment]::GetEnvironmentVariable('Path', 'User') -split ';'

¿Por qué no aparece una variable de entorno nueva?

⁠

Un proceso recibe su entorno al arrancar, así que una ventana que ya estaba abierta no ve los cambios posteriores.

  • set NOMBRE=valor en el Símbolo del sistema y $env:NOMBRE = 'valor' en PowerShell cambian solo la sesión actual, y el cambio desaparece al cerrar la ventana.
  • El diálogo Variables de entorno y el comando setx guardan la variable en el registro, así que persiste, pero solo la ven los programas que inicies después. Abre una nueva ventana de Símbolo del sistema o de PowerShell; si la variable sigue sin aparecer, cierra y vuelve a abrir la aplicación de terminal o el editor desde el que abriste esa ventana.

Ten cuidado con setx PATH "%PATH%;C:\Tools", un comando que encontrarás en muchas guías: %PATH% se expande al Path del sistema y al de usuario combinados, setx lo escribe todo en tu Path de usuario, y además recorta cualquier valor de más de 1024 caracteres. Para añadir un directorio al PATH de forma permanente, edita en su lugar el Path de usuario o el del sistema en el diálogo Variables de entorno. Así es como añadí Maven al PATH en mi guía para instalar Apache Maven en Windows.

Conclusión

⁠

En este artículo, te he mostrado las posibles formas de listar todas las variables de entorno en Windows, algo que tarde o temprano necesitarás cuando estés desarrollando o administrando un sistema. Desde la línea de comandos, set en el Símbolo del sistema y Get-ChildItem Env: en PowerShell listan todas las variables de la sesión actual, y echo %NOMBRE% o $env:NOMBRE muestran una sola. [Environment]::GetEnvironmentVariables y reg query muestran las variables de usuario y del sistema que Windows tiene guardadas, y el clásico diálogo Variables de entorno muestra ambas en la GUI. Los comandos principales, set y Get-ChildItem Env:, funcionan igual desde Windows XP, así que deberían funcionarte en cualquier versión que uses. Espero que te resulte útil.

Te Puede Interesar

⁠
  • Cómo instalar Apache Maven en Windows
  • Windows: Cómo matar un proceso desde la línea de comandos
  • Cómo comprobar los puertos TCP/IP abiertos en Windows
Icono de TwitterIcono de FacebookIcono de LinkedInIcono de PinterestIcono de correo electrónico

Navegador de artículos
Cómo instalar Apache Maven en WindowsWindows: Cómo matar un proceso desde la línea de comandos
© 2007 - 2026 Marc Nuri