CMD: SET : SETX :: %ABC% : ??? - 通过 SET 修改后获取“全局”/“原始”环境

CMD: SET : SETX :: %ABC% : ??? - 通过 SET 修改后获取“全局”/“原始”环境

SET “暂时地”设置/更改environment variable

我如何从已被改变的 shell/进程中获取“原始”/“全局”/“未改变”的?


解释一下标题: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% 却获得了普通用户的价值。

因此格式“%ABC%”同时获取用户和机器变量。

要清除该变量,以管理员身份执行setx apps "" /m

相关内容