我已经尝试过以下命令通过批处理文件将一些路径追加到系统路径变量中:
setx PATH "%PATH%;C:\Program Files\MySQL\MySQL Server 5.5\bin"
在上面的批处理文件上运行后,我已经检查了系统变量的路径,上面的路径不在其中。
您可以Variable value
在下面看到所有Windows内容:
C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMDAPP\bin\x86;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static;
我究竟做错了什么?
piggy带@Endoro的答案(我没有评论代表):
如果要更改系统范围的环境变量,则必须使用/ M,例如:
setx PATH "%PATH%;C:\Program Files\MySQL\MySQL Server 5.5\bin" /M
setx.exe对/ M,BTW的位置很挑剔。它必须在最后。
SETX是否不能设置超过1024个字符?当我执行SETX PATH“%PATH%; C:\ Temp”时,它完成了工作(对于1024个字符),但同时警告:正在保存的数据被截断为1024个字符。有办法解决吗?我不要想这样做做到这一点通过编辑注册表。
编辑注册表还不错。它唯一不做的就是发送WM_SETTINGSCHANGE消息。您可以始终设置注册表值,然后使用setx设置/取消一些无意义的值。
@kalehv:可以肯定的是,
setx
在这种情况下,这种限制不是唯一的。例如,Windows上的命令行大小限制比Linux上严格得多。在使用新路径之前,我还必须启动一个新的命令提示符窗口。
SETX更改了全局环境变量,但是进程必须检查以查看其是否已更新。CMD.EXE永远不会检查。要在CMD中更改变量,请使用SET(例如
SET "PATH=%PATH%;C:\path\to\bin\dir"
)