As coisas são um pouco mais complicadas do que a Microsoft às vezes faz parecer.
Muitas das variáveis de ambiente são armazenadas no Registro. Isso significa que você pode consultá-los usando o comando reg
Comum a todos os usuários
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Específico para a sessão atual do usuário
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
Definido pelo usuário
Se você definir permanentemente sua própria variável de ambiente usando o comando setx variable value
, ela será armazenada no registro, mas não disponibilizada imediatamente.
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
Se você usar o comando set variable=value
, a variável estará disponível imediatamente, mas não será armazenada no registro. Você não pode usar o comando reg
para listá-los, embora eles sejam mostrados por set
. Essas variáveis de ambiente temporário não persistem depois que você termina a sessão de prompt de comando.
Variáveis de ambiente dinâmico
Existem construções que agem como variáveis de ambiente que não são armazenadas no registro dessa maneira. Por exemplo:
echo %TIME%