As coisas são um pouco mais complicadas do que a Microsoft às vezes faz parecer.
Muitas variáveis de ambiente são armazenadas no Registro. Isso significa que você pode consultá-los usando o reg
comando
Comum a todos os usuários
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Específico para a sessão do usuário atual
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 setx variable value
comando, 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 set variable=value
comando, a variável estará disponível imediatamente, mas não será armazenada no registro. Você não pode usar o reg
comando para listá-los, embora eles sejam mostrados por set
. Essas variáveis de ambiente temporárias não persistem após o término da sessão do prompt de comando.
Variáveis de ambiente dinâmicas
Existem construções que agem como variáveis de ambiente que não são armazenadas no registro dessa maneira. Por exemplo:
echo %TIME%
setx test removeme
, algoset test %test%
para que você possa ter todas as variáveis listadas com um simplesset
? Eu estava pensando que é possível implementar um script de comando / lote para torná-los todos explícita mediante solicitação ...