我想使用 setx
修改 Windows PATH 变量。以下内容在 Windows8上至少有50% 的时间可用:
setx PATH %PATH%;C:\Python27\;C:\Python27\Scripts\
如果它给出错误“默认参数只能使用2次”,那么下面的代码在某些时候是有效的:
setx PATH "%PATH%;C:\Python27\;C:\Python27\Scripts\"
区别在于我们用引号包装了第二个参数。我相信当 %PATH%
扩展到包含空格时,引号是必要的。
然而,我在 Windows7上遇到了一些奇怪的问题,在一台特殊的 Windows7机器上,我遇到了这个问题:
echo %PATH%
它打印:
C:\Foo\;C:\Bar\;[...lots of stuff...]C:\Baz\
然后我这样做:
setx PATH "%PATH%;C:\Quux\"
然后它会说“ Error: Truncated at 1,024字符。”现在让我们检查 PATH 包含什么:
echo %PATH%
它打印:
C:\Foo\;C:\Foo\;C:\Bar\;C:\Bar\;[...lots of stuff, now duplicated...]C:\B
截止到一千零二十四个字。因为复制品,它跑过去了。同样有趣的是: PATH 的值发生了变化,尽管 setx
提出了一个错误并且没有说“ Success”。
我能够多次重复这种奇怪的行为(幸运的是,我保存了 PATH 的原始内容)。
目前,我所知道的唯一可靠的方法是在 PATH 中添加以下内容:
路径。
将 PATH 的内容复制到一个文本文件中,并手动将 ;C:\Python27\;C:\Python27\Scripts\
添加到 PATH 的末尾。
从文本文件中复制整个内容。
setx PATH "<paste the string here>"
这个过程在 Windows7和 Windows8上每次都能奏效。
我应该只需要一个命令就能做到,我做错了什么?