如何在命令提示符中查看系统环境变量?

Kyl*_*let 3 windows cmd path batch-file

我在多个堆栈溢出帖子中看到可以使用以下方式查看本地路径变量:

echo %Path%
Run Code Online (Sandbox Code Playgroud)

但我想查看在(Windows 10)中找到的系统路径变量:

控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量... > 系统变量

有谁知道如何从命令行查看这些?如果系统变量已经回答了这个问题,请给我指出那个方向。

编辑:我正在运行一行来检查变量是否存在,如果不存在,我将 Path 的值重置为所有旧变量以及新变量。我只需要系统变量,不需要其他变量,因为当我存储当前变量以及新变量时,我不希望附加任何不属于我的系统环境变量的其他变量。

例如,如果我要使用echo %Path%或者set %Path%我可能将局部变量存储在我的系统变量中。我宁愿不这样做。

小智 5

这列出了四种类型的变量。在控制台中使用

cscript //nologo C:\pathto\script.vbs
Run Code Online (Sandbox Code Playgroud)

请注意,有些变量未列出,这些变量在set- type的帮助中列出set /?

Set WshShell = CreateObject("WScript.Shell")


Set wshsysEnv = WshShell.Environment("SYSTEM")
Wscript.echo "System"
For Each S In wshsysEnv
    WScript.echo S 
Next
Wscript.echo ""

Set wshsysEnv = WshShell.Environment("Volatile")
Wscript.echo "Volatile"
For Each S In wshsysEnv
    WScript.echo S 
Next
Wscript.echo ""

Set wshsysEnv = WshShell.Environment("User")
Wscript.echo "User"
For Each S In wshsysEnv
    WScript.echo S 
Next
Wscript.echo ""

Set wshsysEnv = WshShell.Environment("Process")
Wscript.echo "Process"
For Each S In wshsysEnv
    WScript.echo S 
Next
Wscript.echo ""
Run Code Online (Sandbox Code Playgroud)

获取两个路径(新安装的Windows上用户路径为空,但软件可能会更改它)

Set wshsysEnv = WshShell.Environment("User")
Wscript.echo "User"
For Each S In wshsysEnv
    If lcase(left(S,5)) = LCase("PATH=") then WScript.echo S 
Next
Wscript.echo ""

Set wshsysEnv = WshShell.Environment("System")
Wscript.echo "System"
For Each S In wshsysEnv
    If lcase(left(S,5)) = LCase("PATH=") then WScript.echo S 
Next
Wscript.echo ""
Run Code Online (Sandbox Code Playgroud)

要仅获取开头不带“Path=”的系统路径,请使用此

Set WshShell = CreateObject("WScript.Shell")

Set wshsysEnv = WshShell.Environment("System")
For Each S In wshsysEnv
    If lcase(left(S,5)) = LCase("PATH=") then WScript.echo right(S,Len(S)-5)
Next
Wscript.echo ""
Run Code Online (Sandbox Code Playgroud)