Windows 7的PATH和环境变量已损坏


97

我不知道,但是最近我一直遇到这个问题。在运行我的工作站后,突然有东西破坏了PATH,许多东西停止了工作。最初,我的路径列出了许多目录(我使用Windows 7作为开发盒),一段时间后,我的路径中仅列出了3-4个目录。

我什至无法打开“系统属性”对话框,在其中可以看到环境变量(因为它使用外壳程序变量来启动它,并且不起作用)。简而言之,我每次都重新启动。

有什么想法可能导致该问题吗?最近我没有运行任何新的/异常的东西。仅VmWare(但我过去一直在使用它,那时没有该问题)。

我只是检查,甚至%WINDIR%没有定义。WTF ?!


2
我最近在64位Vista机器上遇到了同样的问题。没有明显的原因,如果我打开新的命令提示符,则路径变量将设置为“用户变量”中定义的路径的一部分。路径的“系统变量”部分丢失。有些但不是全部系统变量是未定义的。注册表看起来确定,并且在“系统属性”对话框中,一切看起来都确定(使用“ c:\ windows \ system32 \ systempropertiesadvanced.exe”)。重新启动后,系统正常运行。问题每隔几天就会发生一次。全面的病毒扫描没有发现任何结果。

我有同样的问题。我发现了一些触发它的不同东西(运行某些程序,正在运行安装程序等),但没有理由导致它(它们在其他计算机或VM上运行良好)。最终,我遇到了其他问题,使重新安装变得更加困难修复了所有问题。
Jim McKeeth 2012年

4
我的路太长了。我删除了重复项,删除了无用的条目,问题消失了。
Pavel P

Answers:


127

我的博客

底线是,如果您的PATH环境变量超过2048个字符,则它(和WINDIR)将在许多情况下停止可见。

我通过手动运行c:\ windows \ system32 \ systempropertiesadvanced.exe并从我的PATH中删除一项以使我的字符数少于2048个字符来解决此问题。新的cmd窗口工作正常。

更新:这个类似的问题声称2047是最大值,并详细说明了扩展规则


2
我只是通过重新启动计算机来解决此问题……这确实是Windows的愚蠢限制!
埃德温业

3
刚遇到这个问题。真是笑话。谢谢
SwimBikeRun 2014年

3
就像其他人提到的那样,修复PATH之后,如果不想重新启动,只需在任务管理器中重新启动explorer.exe。请确保不要通过右键单击任务栏来启动任务管理器!这样做将使用顶起的路径(以及新的explorer.exe进程)初始化任务管理器。通过执行CTRL启动它+移位+逃逸
C. Tewalt

1
这次真是万分感谢。上个月左右,当Sony产品使我的行程增加了200个字符时,我一直在与之抗争。
Michael Dorgan

1
除了Raven提出的建议外,我还做了以下操作:c:\program files (86)用另一个变量(例如PRGX86指向程序文件dir)替换path变量中的常见基本dirs 。这样,您可以保存一些其他字符。
ovm '16

23

2048个字符的限制是真实的。我所做的是将路径分为两个单独的变量,并将第二个变量包括在PATH变量中:

PATH=C:\;%PATHEXTENDED%
PATHEXTENDED=E:\

这样,我不必删除任何PATH目录,但可以将PATH变量设置为2048个字符以下。


2
好的,这真是个天才
kenwarner 2014年

1
非常聪明,但是动态添加PATH条目的应用可能会在完全扩展的路径上运行,但仍然会发疯。但是至少痛苦将仅限于该过程。
乌鸦

谢谢您提出了这个好主意,但是不幸的是,它在Win7下不起作用:未解析变量“ extpath”-或在您的情况下为“ pathextended”
-....

2
此解决方案在Win 7中对我不起作用。2个变量的内容已连接在一起,但从组合的PATH变量中截断了2048th(?)之后的所有字符。因此,我必须按照@Raven最后从PATH中删除条目,以使图标和%windir%等返回。
snark

12

一种解决方法,解决所有由于过多path或其他原因而试图解决此问题的人:只需重新启动Explorer。新的外壳将采用新的环境。即使您尚未能够确定并永久解决根本原因,这也可以暂时修复损坏,而无需重新启动。

1。

在此处输入图片说明

2。

在此处输入图片说明

3。

在此处输入图片说明

编辑:更新为Windows的较新版本。

现在,任务管理器只需一步即可:

在此处输入图片说明


这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论-您可以随时对自己的帖子发表评论,一旦您拥有足够的声誉,就可以在任何帖子中发表评论
Michael K'7

尊重,我不同意。问题是Windows 7's PATH and environment variables are corrupted。我的答复提供了一种消除该损坏的方法。这本身就是一个相关的答案,还可以与其他修复程序一起使用,否则需要重新启动。
Reg Edit

我建议编辑Ravens答案并将您的内容添加到其中。大多数人只会阅读已接受的答案,如果我理解正确,那么您的答案将是最主要的补充。
Michael

知道了 不,它与任何尝试的解决方案有关。我已经编辑了答案,以使其更清楚。
Reg Edit

1
作为评论,这可能比答案更值得。与其重新启动,不如结束任务explorer.exe并重新启动explorer.exe。您的答案解决了他的问题的一部分-这部分“我什至无法打开“系统属性”对话框,在这里我可以看到环境变量(因为它使用Shell变量启动它并且无法正常工作。)总之,我会重新启动每个时间。” 但是请注意,由于重新启动后他遇到了路径问题,因此无法像重新启动那样解决他的问题。
barlop 2014年

3

您应该获得一个程序来监视注册表项

用户变量

HKCU\Environment

机器变量

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

您可能会在他们被摧毁的那一刻赶上并缩小范围。

另外,启动后需要多长时间。如果您至少知道何时会发生,它将有助于缩小范围。

也尝试安全模式。如果与流程相关,请检查事件查看器。

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.