如何从命令行附加到用户 %PATH%

如何从命令行附加到用户 %PATH%

我在 StackExchange 上发现了很多类似这样的问题,但没有一个适合我的具体情况。

我想轻松地将 %FOO% 添加到用户环境变量 PATH 中。

我找到了以下解决方案。不幸的是,它没有按预期工作。

for /f "skip=2 tokens=3*" %a in ('reg query HKCU\Environment /v PATH') do @if [%b]==[] ( @setx PATH "%~a;%FOO%" ) else ( @setx PATH "%~a %~b;%FOO%" )

如果出现以下情况则不起作用:

  • 用户 PATH 变量不存在
  • 用户 PATH 存在且为空
  • 用户 PATH 长度几乎为 255 个字符。

此外,它并不是逐字添加 %FOO%,而是对其进行扩展。

是否有可能轻松做到这一点?

答案1

这取决于您要做什么:

  • 要仅更新当前命令行会话中的 PATH,请使用: set PATH=%PATH%;%FOO%
  • 要仅为当前用户编辑它,请使用:setx PATH "%PATH%;%FOO%"。请注意,此更改在您的当前的命令行会话;您需要启动一个新的命令行。
  • 要为机器上的所有用户编辑它,请使用:setx /M PATH "%PATH%;%FOO%"

ECHO %PATH%您可以通过在命令行中输入或通过在 Windows 环境设置中检查

此外,在 Windows 7 和 8 中,最大环境变量字符串大小是 32,767 个字符。虽然这对于 PATH 变量也有效,但命令控制台中的命令的最大长度为 8191 个字符,因此在命令行命令中使用 PATH 变量时需要考虑这一点。无论如何,除了现在的 256 个字符之外,您还有更多的空间。

相关内容