路径变量中的文件夹过多

CC *_*Inc 17 windows path command-line environment-variables visual-studio

我遇到了一个奇怪的问题 - 我无法启动 Visual Studio,也无法从命令提示符运行简单的命令,这似乎是因为我的 PATH 变量太长。现在我看到它,我看到许多公司已经将他们的安装目录添加到 PATH 变量中。

我想知道为什么这些公司将他们的文件夹添加到路径中(也许是为了更简单地执行他们的程序?),哪些是必要的,哪些我可以删除。如果我删除其中的一些,我将无法启动这些程序吗?(这是路径中当前存在的内容)

Psy*_*eek 13

可以减少环境变量 PATH 中过多的路径,只需将整行保存到记事本中,作为备份并删除一些并测试。

他们中的大多数都在那里,所以如果快捷方式没有为“目标”设置完整路径,如果快捷方式中的“开始”设置不正确,或者启动奇怪地完成,他们的程序及其部件总是成立。在大多数情况下,它是一种故障保护。您仍然希望完全测试您删除其路径的任何程序的任何使用。
对于在 CMDprompt 中键入命令的人来说,它也非常有用,即使没有 CD,计算机也会扫描每个位置,直到找到并运行具有该名称的程序为止。或任何其他同名命令:-)

那组路径 WAS(古代)限制为少于 255(或 260)个字符,很久以前更改为 1024,然后在 server'03 时代被修补以处理 2048 ,并且据说可以在某些系统上处理 8096 ,甚至很久以前。

今天人们发现的真正限制是在 CMDprompt 中,它对命令字符串的长度有限制,包括变量和路径的扩展。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx这里微软说:

“用户定义的环境变量的最大大小为 32,767 个字符。环境块的大小没有技术限制。但是,根据用于访问块的机制,存在实际限制。例如,批处理文件不能设置超过最大命令行长度的变量。”

在那个位置 ^ 他们指向包含系统路径的注册表位置HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 必须在那里读取它的其余部分。

CMDprompt 和批处理限制一旦扩展为 2048 个字符,据说是较新系统的 4 倍(需要引用,因为人们没有看到)

另请参阅http://support.microsoft.com/kb/830473,其中讨论了旧系统的命令提示符和批处理长度。

为了确保那里的条目是正确的,维基有这样的说法:http :
//en.wikipedia.org/wiki/Environment_variable

%PATH% 该变量包含一个以分号分隔(不要在其间放置空格)的目录列表,命令解释器将在其中搜索与给定命令匹配的可执行文件。表示路径的环境变量可以嵌套在 PATH 变量中,但只能嵌套在一个间接级别。如果此子路径环境变量本身包含表示路径的环境变量,则 PATH 将无法在变量替换中正确扩展。

在那里拥有所有额外的路径会大大减慢某些事情的速度,因为它在放弃之前被迫查看所有这些地方。每当调用文件项时使用完整路径总是会更快,即使在批处理或使用 CMDprompt 时也是如此。

使用旧的 DOSlike 8.3 约定是缩小大小的一种方法,此 Batch /sf/answers/1425404571/ 效果很好。确保(再次)备份原始字符串。另请参阅该问题的其他可能解决方案。

这是我的样子,情况更糟。
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\

我会立刻扔掉 quicktime,而 AMD 的程序之前已经在那里放置了一条扩展路径,扔了它,Adobee 有一个,这些对于标准的 GUI 快捷方式/图标方法都无关紧要。可以去掉很多东西,然后测试所有功能。如果您通过在 CMD prompt 中键入来调用事物,则删除这些路径将不起作用。

  • 限制似乎是 [2048 个字符](https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable)。在那之后,我无法在环境变量 GUI 中输入更多字符。 (3认同)

Jul*_*ano 11

我的路径中有几个与软件开发相关的环境变量,所有这些都很重要。

上面的解决方案对我不起作用,所以我去了目录连接

  • 在我的 PATH 中选择一些最长的路径(如C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\
  • 创建一个小文件夹来存储我的连接点: C:\d\
  • 为长路径创建短交汇点:
mklink /j C:\d\sql "C:\Program Files (x86)\Microsoft SQL
Server\100\Tools\Binn\VSShell\Common7\IDE\"
Run Code Online (Sandbox Code Playgroud)

在 15 条路径上执行此操作将我的 PATH 从 2045 个字符减少到 1285 个字符。

当您最终从机器上卸载东西时可能会出现问题,因为连接点将保留在路径中,您必须手动清理它们。