繁体   English   中英

如何在命令提示符下查看我的SYSTEM环境变量?

[英]How can I view my SYSTEM environment variables in a command prompt?

我已经在多个堆栈溢出文章中看到可以使用以下命令来查看LOCAL路径变量:

echo %Path%

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

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

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

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

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

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

cscript //nologo C:\pathto\script.vbs

请注意,有一些未列出的变量,这些变量在set帮助中列出-类型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 ""

获取两个路径(在新安装的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 ""

要只获取开头没有“ 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 ""

您可以使用reg.exe。 仅显示所有系统路径:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path

当您要在一行中显示每个路径时,这里是一小批:

@echo off
setlocal
for /f "tokens=2* delims= " %%d in ('REG query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH 2^>nul') do (
  set "_REMAIN_=%%~e"
  call :Sub1
)
exit /b 0

:Sub1
for /f "tokens=1* delims=;" %%d in ("%_REMAIN_%") do (
  echo %%~d
  set "_REMAIN_=%%~e"
  if not "%%~e"=="" call :Sub1
)
exit /b 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM