為什麼set指令顯示的環境變數比gui環境變數多?

為什麼set指令顯示的環境變數比gui環境變數多?

當我在命令提示字元下運行set命令時,我看到的第一個變數是

在此輸入影像描述

但是當我打開環境變數 GUI 時,我沒有看到ALLUSERSPROFILE

在此輸入影像描述

在此輸入影像描述

這是為什麼?其中列出的許多其他變數set也不會顯示在 GUI 中。它們不應該顯示相同的訊息嗎?

答案1

經過一番嘗試和錯誤後,我發現這些環境變數是SET我的 Windows 8.1 系統上報告的附加變數:

ALLUSERSPROFILE
APPDATA
COMPUTERNAME
CommonProgramFiles
CommonProgramFiles(x86)
CommonProgramW6432
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
PROMPT
PUBLIC
ProgramData
ProgramFiles
ProgramFiles(x86)
ProgramW6432
SESSIONNAME
SystemDrive
SystemRoot
USERDOMAIN
USERDOMAIN_ROAMINGPROFILE

我懷疑它們都是由 Windows 自動生成和更新的,這可能是為什麼我在 Windows 註冊表中找不到其中列出的一些內容的原因。

我知道這一點HOMEDRIVEHOMEPATH並且HOMESHARE自動更新此 TechNet 論壇帖子

我嘗試將變量永久更改為除(預設)PROMPT之外的其他變量 ,並注意到它 在$P$GSETXPROMPT<使用者名稱> 的使用者變數 環境變數 GUI 中的部分。

刪除該變數後,我的提示符號被重置回$P$G.我注意到COMPUTERNAME環境變數有相同的行為。這同樣適用於:

CommonProgramFiles
CommonProgramW6432
PROCESSOR_ARCHITECTURE
ProgramFiles
ProgramW6432

正如本中所解釋的有關 WOW64 實作細節的 MSDN 文章

答案2

根據SS64.com(Autoexec.bat 部分),這些變數可能是開機時間變量,“不適用於 32 位元 GUI 程式”。從 Windows XP 開始,啟動時環境變數應在登錄中設定:
HKEY_CURRENT_USER\Environment (使用者環境變數)或者:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment(系統環境變數)
如圖所示微軟的知識庫

相關內容