打开regedit.exe,导航到HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment。创建两个环境变量:
Name Type Data
----- -------------- -----------
zbar REG_SZ water
zfoo REG_EXPAND_SZ %zbar%
Run Code Online (Sandbox Code Playgroud)
打开新的cmd.exe,powershell.exe或者什么。缺少这些变量。注销,然后登录。在cmd.exe窗口类型echo %zbar%-water显示。键入echo %zfoo%和%zbar%已显示,但我希望看到扩展值 - water。
现在。打开 Windows环境变量对话框。更改或创建任何变量(例如zzz=zzz)。重新打开cmd.exe并输入echo %zfoo%- 现在您看到了water!
实际上,我正在使用 PowerShell 脚本创建这些变量。但是这个脚本所做的只是描述了注册表操作。
问题:
zfoo通过打开 Windows环境变量对话框并更改一些变量来强制变量具有正确的值而没有这种魔力?也许我应该调用一些 API,比如[Microsoft.Win32.Registry]::Refresh()?谢谢。