WINDIR 环境变量解析为 %SystemRoot% 而不是 C:\windows

pra*_*tis 8 windows environment-variables

前段时间我手动更改了WINDIR环境变量以测试我正在使用的旧程序中的某些内容(应该在虚拟机上而不是在我的桌面上完成此操作:/但现在为时已晚)

因此,出于某种原因,现在%WINDIR%不再解析为 c:\windows,而是解析为 %SystemRoot%。从命令行:

echo %WINDIR% outputs %SystemRoot%
Run Code Online (Sandbox Code Playgroud)

echo %SystemRoot% outputs C:\windows
Run Code Online (Sandbox Code Playgroud)

无法解决 WINDIR 导致我各种头痛。我试过在控制台窗口提供的值中WINDIR明确设置c:\windows为,但无济于事。我也试过手动更改windir注册表项的值

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\windier
Run Code Online (Sandbox Code Playgroud)

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment\windir
Run Code Online (Sandbox Code Playgroud)

但仍然不是运气。有没有人见过这种行为?

忘了提到这是在 Windows 7 Enterprise ed 上

wmz*_*wmz 8

请检查您拥有的值的类型Windir。您可能无意中将其从 更改REG_EXPAND_SZREG_SZ。您必须直接在注册表中执行此操作(GUI 面板不会显示差异):

启动注册表编辑器,导航到HKEY_LOCAL_MACHINE\system\currentControlSet\Control\Session Manager\Environment.
检查windir具有 REG_EXPAND_SZ.
如果没有,重新创建条目为: windir REG_EXPAND_SZ %SystemRoot%

注销/登录并检查它是否有效