簡體   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