在 Windows(例如版本 10)中,你可以使用以下命令列出环境变量
set
如何列出所有用户相同的环境变量或仅列出当前用户或会话的环境变量?
答案1
事情比微软有时表现出来的要复杂一些。
许多环境变量都存储在注册表中。这意味着您可以使用以下reg
命令查询它们
所有用户共用
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
特定于当前用户会话
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
由用户设置
如果您使用命令永久设置自己的环境变量,setx variable value
它将存储在注册表中,但不会立即可用。
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
如果您使用该set variable=value
命令,变量将立即可用,但不会存储在注册表中。您无法使用该reg
命令列出它们,尽管它们通过 来显示set
。这些临时环境变量在您结束命令提示符会话后不会保留。
动态环境变量
有一些结构的作用类似于环境变量,但不以这种方式存储在注册表中。例如:
echo %TIME%
答案2
为了获得没有多余线条和黑色空格的干净输出,请使用以下命令cmd.exe
:
用户环境变量:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I
全局(系统)环境变量:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I
它适用于 Windows 7-10,并且很可能也适用于早期版本。
答案3
输入批处理命令:echo %temp%
如果“temp”环境变量包含“H:\Users\amacm\AppData\Local”,Windows 将立即响应以下内容:
H:\用户\amacm\AppData\Local
如果没有名为“temp”的环境变量,Windows 将做出以下响应:
%温度%