答案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\Environment
,Path
您可以在其中找到。右键单击Path
将打开一个菜单,其中调整...可以选择修改变量的值。与往常一样,使用注册表编辑器时,请确保只更改您想要更改的内容,因为某些更改可能会产生不理想的副作用。