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


6

前段时间我手动改变了 WINDIR 环境变量来测试我正在使用的遗留程序中的某些东西(应该在VM上而不是我的桌面上执行此操作:/但现在已经太晚了)

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

echo %WINDIR% outputs %SystemRoot%

echo %SystemRoot% outputs C:\windows

无法解决WINDIR导致我各种头痛。我试过设置值 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企业版上


不知道你使用的Windows版本或其他Windows版本,但在XP中它是HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment和HKCU \ Environment
barlop

假设你做的例如C:\> reg query HKCU \ Environment< ENTER>或者更确切地说C:\> reg查询HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Session Manager \ Environment< ENTER>然后是否显示环境变量已在该注册表位置更改?
barlop

1
对我来说,(xp),%windir%给出了c:\ windows和%systemroot%给出了c:\ windows
barlop

我只是重新安装您的操作系统。当然我没有看到问题,%WINDIR%是假设指向Windows目录不是吗?两个变量都可以指向 C:\Windows
Ramhound

1
您将值更改为C:\ windows并且它没有解决您的问题?也许这不是导致你的问题的原因吗?
Langhard

Answers:


6

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

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

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


好的,这个修好了。在我的沮丧/愚蠢中,我必须将windir reg键的类型修改为REG_SZ。重新创建为REG_EXPAND_SZ后,将其设置为%SystemRoot%并重新启动%windir%正确解析,我的快捷方式再次工作。非常感谢mil
prayingpantis

顺便说一句,似乎我在ControlSet002文件夹中创建了一个SystemRoot键,当我做了这个bugger-up时,有些希望能解决问题。所以我在重新创建windir键时删除了。
prayingpantis

@prayingpantis很高兴我能帮到你!
wmz

2

更正! %SystemRoot% 是默认值 。所以这个变量在你的系统中设置正确。

enter image description here

右键单击 计算机 - 设置 - 高级系统设置 - 高级 - 环境变量 。在该窗口的第二部分(在环境变量下),您可以找到您的变量 WINDIR 指向 %systemroot%。将其更改为 %SystemRoot%,这是默认值,如果仍然出现错误则进行测试。


1
实际上,很可能默认值是C:\ Windows,其中HAPPENS与%systemroot%相同。我认为该值不是%systemroot%。提问者看起来像那样,你现在也是,但我认为根本不是这样的。看看他的问题的评论,例如关于xp,或者来自windows 7上的avirk
barlop

看到我附上的图片。 (对不起,这是德语)当您双击系统环境变量中的windir值时,您可以看到设定值实际上是:%SystemRoot%。但你必须双击它,否则你只看到解决的值。
Langhard

1
嘿,你也是对的..(双击显示%systemroot%)并在reg.exe中查看注册表,显示windir REG_EXPAND_SZ%SystemRoot%
barlop

@Riscie:我为你添加了英文版;)
Der Hochstapler

先生,先生! :) @OliverSalzburg
Langhard
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.