Las cosas son un poco más complicadas de lo que Microsoft a veces lo hace parecer.
Muchas de las variables de entorno se almacenan en el Registro. Esto significa que puede consultarlos con el reg
comando
Común para todos los usuarios
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Específico para la sesión de usuario actual
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
Establecido por el usuario
Si establece permanentemente su propia variable de entorno utilizando el setx variable value
comando, se almacena en el registro pero no está disponible de inmediato.
C:\>setx test removeme
SUCCESS: Specified value was saved.
C:\>reg query "HKCU\Environment"
HKEY_CURRENT_USER\Environment
Path REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
test REG_SZ removeme
Si usa el set variable=value
comando, la variable está disponible de inmediato pero no se almacena en el registro. No puede usar el reg
comando para enumerarlos aunque se muestran por set
. Estas variables de entorno temporales no persisten después de finalizar la sesión del símbolo del sistema.
Variables de entorno dinámico
Hay construcciones que actúan como variables de entorno que no se almacenan en el registro de esta manera. Por ejemplo:
echo %TIME%
setx test removeme
, algoset test %test%
para que pueda tener todas las variables enumeradas con un simpleset
? Estaba pensando que es posible implementar un comando / script por lotes para hacerlos explícitos a pedido ...