如何绕过 PATH 变量的长度限制

如何绕过 PATH 变量的长度限制

错误信息

系统属性

此环境变量太大。此对话框允许设置最多 2047 个字符的值。

我使用过很多软件,因此我的 PATH 也随之增长。当我尝试添加新路径时,我收到上述消息。作为一种解决方法,我正在编辑我的用户路径,但不想这样做。

答案1

微软的文档说,Windows 上的环境变量限制为 32,767 个字符(关联),但没有说明如何创建这么长的变量。

这里的问题是 Windows 提供的工具都有其局限性:

  • set 和 setx 命令将值截断为 1023 个字符。

  • 直接在注册表中设置会 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 失败,因为 regedit 会在 2047 个字符后截断输入的字符串。

所以你必须使用变通方法。

使用短文件夹名称

您可以使用 来查看此类名称dir /x /ad。以下示例显示在我的计算机上该文件夹Program Files (x86) 可以替换为PROGRA~2

在此处输入图片描述

使用嵌入的环境变量

如果你有:

C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2

然后您可以创建一个新的环境变量,例如:

SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places

之后你的原始路径变成

%P1%\subdir1
%P1%\subdir2

您还可以通过创建一个新变量将 PATH 分成两部分,例如NEWPATH,包含多余的路径并附加到;%NEWPATH%PATH 变量。

避免使用 setx 命令 因为它将直接解析嵌入的环境变量并且生成的字符串将再次太长。

使用 PowerShell 脚本设置 PATH

PowerShell 直接调用 Windows API,因此可以接近环境变量 32,767 个字符的理论限制。

该脚本可能包含如下命令:

[Environment]::SetEnvironmentVariable("Path", $longpath, "Machine")

答案2

我试过了。之后它对我来说很有效按照@harrymc 的回答即使您面临这个问题,请尝试一下。

path2使用 中的所有内容制作一个新文件path

现在放置%path2%在路径内

在此处输入图片描述

在此处输入图片描述

所以现在%path2%; %path3%; %path4%; ...等等。

答案3

虽然您使用的对话框将环境变量的长度限制为 2047 个字符,但注册表编辑器没有这个限制。可以使用运行对话框打开注册表编辑器,可以使用Win+R键盘快捷键打开。键入regedit并按 Enter 将打开注册表编辑器。环境变量列在下面Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Session Manager\EnvironmentPath您可以在其中找到。右键单击Path将打开一个菜单,其中调整...可以选择修改变量的值。与往常一样,使用注册表编辑器时,请确保只更改您想要更改的内容,因为某些更改可能会产生不理想的副作用。

答案4

  1. 创建路径2
  2. 将 %path2% 放入路径
  3. 在 cmd 上检查是否工作,例如 python...

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容