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

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

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

我甚至无法打开系统属性对话框来查看环境变量(因为它使用 shell 变量来启动它,但它不起作用)。简而言之,我每次都要重新启动。

有什么想法可能导致该问题吗?我最近没有运行任何新的/不寻常的东西。只有 VmWare(但我过去一直在使用它,当时没有遇到这个问题)。

我刚刚检查了一下,甚至%WINDIR%没有定义。WTF?!

答案1

我的博客

底线是,如果您的 PATH 环境变量超过 2048 个字符,它(和 WINDIR)将在许多上下文中不再可见。

我通过手动运行 c:\windows\system32\systempropertiesadvanced.exe 并从 PATH 中删除一个条目来修复此问题,使字符数低于 2048 个。新的 cmd 窗口工作正常。

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

答案2

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

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

这样,我就不必删除任何 PATH 目录,但却获得了 2048 个字符以下的 PATH 变量。

答案3

对于任何试图解决此问题的人,无论是由于过度path还是其他原因,都有一个解决方法:只需重新启动 Explorer。新的 shell 会获取一个新环境。这会暂时修复损坏,而无需重新启动,即使您尚未能够识别并永久解决根本原因。

1.

在此处输入图片描述

2.

在此处输入图片描述

3.

在此处输入图片描述

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

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

在此处输入图片描述

答案4

你应该找一个程序来监控注册表项

用户变量

HKCU\Environment

机器变量

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

您可能会抓住它们被破坏的瞬间并缩小范围。

另外,还要计算启动后需要多长时间。如果你至少知道它什么时候会发生,这将有助于缩小范围。

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

相关内容