Listar todas las variables de entorno desde la línea de comando


934

¿Es posible enumerar todas las variables de entorno desde el símbolo del sistema de Windows?

Algo equivalente a PowerShell gci env:(o ls env:o dir env:).


1
¿Alguien puede compartir una solución PowerShell? Se supone que es el futuro y todo. ¿Derecha?
Bruno Bronosky

1
@BrunoBronosky la solución PS está incluida en la pregunta, y también hay una respuesta que la repite =)
Jon

Para obtener una descripción de cada uno, visite ss64.com/nt/syntax-variables.html
Samuel Harmer

Respuestas:


1354

Solo haz:

SET

También puede hacer SET prefixpara ver todas las variables con nombres que comienzan con prefix.

Por ejemplo, si desea leer solo derbydb de las variables de entorno, haga lo siguiente:

set derby 

... y obtendrás lo siguiente:

DERBY_HOME=c:\Users\amro-a\Desktop\db-derby-10.10.1.1-bin\db-derby-10.10.1.1-bin

77
Esto me pide un nombre?
CMCDragonkai

53
@KevinMeredith: todos los comandos en el shell de Windows no distinguen entre mayúsculas y minúsculas.
Jon

12
@CMCDragonkai ¿estás usando powershell? Parece que se ha configurado con uno de sus comandos. ¡Esta es una de sus características menos útiles! Hice una pregunta sobre cómo deshabilitar esto aquí
JonnyRaa

3
¿Alguien puede actualizar esto para incluir una solución PowerShell? Se supone que es el futuro y todo. ¿Derecha?
Bruno Bronosky

3
@NickTimmer ya que estás hablando con bash en lugar del shell de Windows, esta es la pregunta / respuesta incorrecta para ti. Mira printenv.
Jon

167

Jon tiene la respuesta correcta, pero para elaborar un poco más con un poco de azúcar sintáctica ...

SET | more

le permite ver las variables una página a la vez, en lugar de todo el lote, o

SET > output.txt

envía la salida a un archivo output.txt que puede abrir en el Bloc de notas o lo que sea ...


77
No tenía idea de que moreexistía en Windows, +1
nuevo nuevo

en realidad también está integrado en algunas funciones. Dir, por ejemplo, página con a / p.
John Lord

@ardnew: Ahora sabes más ;-)
user2943111

107

Para enumerar todas las variables de entorno en PowerShell:

Get-ChildItem Env:

O como lo sugiere el usuario797717 para evitar el truncamiento de salida:

Get-ChildItem Env: | Format-Table -Wrap -AutoSize

Fuente: Creación y modificación de variables de entorno ( Consejo de la semana de Windows PowerShell )


44
Incluso si no uso PowerShell porque no funciona para cada comando cmd, esta es la única solución para una impresión bonita (en 2 columnas) sin grandes esfuerzos. Para lograr el mismo comportamiento en cmd, necesita algo como esto for /f "tokens=1,2 delims==" ...que se vuelve muy complicado ...
ROMANIA_engineer

66
Para evitar que la salida se trunca, usaría lo siguiente:Get-ChildItem Env: | Format-Table -Wrap -AutoSize
user797717

1
gci env:en cambio Get-ChildItem Env:, más fácil de recordar
matson kepson

¡Perfecto! No veo por qué esta no es la mejor respuesta para ser honesto: / EDITAR: Oh, espera, veo por qué ... la pregunta original no era sobre cómo hacerlo en Powershell, sino en la vieja escuela Commandprompt: D
Yoeri Van Nieuwerburg

79

Simplemente huye setde cmd.

Muestra, establece o elimina variables de entorno. Utilizado sin parámetros, set muestra la configuración actual del entorno.


11

Puedes usar SETen cmd

Para mostrar la variable actual, solo SET es suficiente

Para mostrar ciertas variables como 'RUTA', use SET PATH.

Para obtener ayuda, escriba set /?.


2
¿Cómo es esto diferente de las respuestas existentes?
Peter Mortensen

7

No pierdas el tiempo. Búscalo en el registro:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

devuelve menos que el comando SET.


2
aunque eso podría ser cierto, una diferencia es que la consulta del registro devuelve REG_EXPAND_SZclaves no expandidas . Por ejemplo reg query "HKCU\Environment", me muestra que mi %TEMP%variable depende del valor de %USERPROFILE%, por lo que si ese valor cambia, también lo haría el valor de %TEMP%. Por el contrario, SETsolo regresa"C:\Users\mpag\AppData\Local\Temp"
mpag

1
¿Por qué dices "no pierdas el tiempo"? ¿No está escribiendo "set" en el símbolo del sistema más rápido que "reg query ..."?
Alexandre Huat

4

Si desea ver la variable de entorno que acaba de configurar, debe abrir una nueva ventana de comandos.

Las variables configuradas con variables setx están disponibles solo en futuras ventanas de comandos, no en la ventana de comandos actual. ( Setx, ejemplos )


4

Como se menciona en otras respuestas, puede usar set para enumerar todas las variables de entorno o usar

set [environment_variable] para obtener una variable específica con su valor.

set [environment_variable]= se puede usar para eliminar una variable del espacio de trabajo.


1
Sí, pero ¿cómo responde esto a la pregunta?
Peter Mortensen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.