CMD: 設定: SETX :: %ABC% : ??? -- 透過 SET 變更後取得「全域」/「原始」ENV

CMD: 設定: SETX :: %ABC% : ??? -- 透過 SET 變更後取得「全域」/「原始」ENV

SET “暫時地”設定/更改environment variable.

如何從已更改的外殼/進程中獲取“原始”/“全局”/“未更改”?


解釋一下標題:SET適用於我所說的 局部範圍SETX在一個全球的一。
%ABC%從中取得變數局部範圍,但我正在尋找一些東西來獲取它全球的一。

因此SETSETX::%ABC%: ?

答案1

為了避免與網路網域中使用的術語混淆,請不要使用“本地”,而應使用“每用戶”,不要使用“全域”,而應使用“每台電腦”(對於所有本機使用者)。

“本地”實際上意味著“僅在本機上”,並且可能意味著全部本地用戶。

每台機器的變數儲存在

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

每個用戶變數存儲在 HKEY_CURRENT_USER\Environment

SETX 可以針對每個使用者或每台機器。

SET 是暫時的(在 CMD 會話期間); SETX 是永久性的(儲存在登錄中)。

使用 SETX 設定的變數在設定時開啟的任何 CMD 會話中不可用;它將在新的 CMD 會話中可用。

若要設定「每台機器」變量,請使用 SETX 的 /M 選項。

範例示範:

以管理員身份輸入:

C:\WINDOWS\system32>setx apps %SystemDrive%\apps /m
SUCCESS: Specified value was saved.

然後以非管理員使用者身分開啟另一個cmd視窗:

C:\Users\jh>echo %apps%
C:\apps

儘管「apps」是機器範圍內的,但 %apps% 為普通用戶獲取價值。

因此,格式“%ABC%”同時取得使用者變數和機器變數。

若要清除該變量,請以管理員身分執行setx apps "" /m

相關內容