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.