![WINDIR 环境变量解析为 %SystemRoot% 而不是 C:\windows](https://linux22.com/image/1330144/WINDIR%20%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E8%A7%A3%E6%9E%90%E4%B8%BA%20%25SystemRoot%25%20%E8%80%8C%E4%B8%8D%E6%98%AF%20C%3A%5Cwindows.png)
前段时间,我手动更改了WINDIR
环境变量来测试我正在使用的旧程序中的某些内容(应该在虚拟机而不是桌面上执行此操作:/但现在已经太晚了)
因此由于某种原因,现在%WINDIR%
不再解析为 c:\windows,而是 %SystemRoot%。从命令行:
echo %WINDIR% outputs %SystemRoot%
和
echo %SystemRoot% outputs C:\windows
无法解析 WINDIR 让我头疼不已。我尝试在 windows 提供的控制台中WINDIR
明确将值设置为c:\windows
,但无济于事。我还尝试手动更改 windir 注册表项的值
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\windier
和
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment\windir
但还是没运气。有人见过这种行为吗?
忘了说这是在 Windows 7 Enterprise ed 上
答案1
请检查您拥有的值的类型为Windir
。您可能无意中将其从 更改为REG_EXPAND_SZ
。REG_SZ
您必须直接在注册表中执行此操作(GUI 面板不会显示差异):
启动注册表编辑器,导航到HKEY_LOCAL_MACHINE\system\currentControlSet\Control\Session Manager\Environment
。
检查windir
的类型为 REG_EXPAND_SZ
。
如果不是,请重新创建条目: windir REG_EXPAND_SZ %SystemRoot%
注销/登录并检查是否有效
答案2
更正!%SystemRoot%
是默认值。因此,这个变量在您的系统中设置正确。
右击计算机 - 设置 - 高级系统设置 - 高级 - 环境变量在该窗口的第二部分(环境变量下),您可以找到您的变量温迪尔指向%systemroot%
将其更改为%SystemRoot%
,这是默认值,测试是否仍然出现错误。