我想使用setx
. 以下内容在 Windows 8 上至少有 50% 的时间有效:
setx PATH %PATH%;C:\Python27\;C:\Python27\Scripts\
如果它给出错误“默认参数只能使用 2 次”,那么以下方法在某些时候有效:
setx PATH "%PATH%;C:\Python27\;C:\Python27\Scripts\"
不同之处在于我们将第二个参数用引号括起来。我相信当%PATH%
扩展到包含空格时,引号是必要的。
但是,我在 Windows 7 上遇到了一些奇怪的问题。在一台特定的 Windows 7 机器上,我遇到了这个问题:
echo %PATH%
它打印:
C:\Foo\;C:\Bar\;[...lots of stuff...]C:\Baz\
然后我这样做:
setx PATH "%PATH%;C:\Quux\"
然后它显示“错误:在 1,024 个字符处被截断。” 现在让我们检查一下 PATH 包含的内容:
echo %PATH%
它打印:
C:\Foo\;C:\Foo\;C:\Bar\;C:\Bar\;[...lots of stuff, now duplicated...]C:\B
...它在 1,024 个字符处被截断。由于重复,它跑了。同样有趣的是:尽管setx
引发了错误并且没有说“成功”,但 PATH 的值发生了变化。
我能够多次重复这种奇怪的行为(幸运的是我保存了 PATH 的原始内容)。
目前,我知道附加到 PATH 的唯一可靠方法如下:
echo
路径。将 PATH 的内容复制到一个文本文件中并手动添加
;C:\Python27\;C:\Python27\Scripts\
到 PATH 的末尾。将整个内容从文本文件中复制出来。
setx PATH "<paste the string here>"
该过程在 Windows 7 和 Windows 8 上每次都有效。
我真的应该能够在一个命令中做到这一点。我究竟做错了什么?