set命令
set命令用于设置当前cmd窗口中的环境变量,只在当前cmd窗口有效,cmd窗口关闭后将会失效,而其不会影响到系统中保存的用户环境变量。
setx命令
setx设置永久用户环境变量
setx env_name env_value
注意:有的路径中会带有空格,所以最好用双引号把变量和值都包裹起来,也就是写成如下形式:
setx "env_name" "env_value"
例,追加一个路径到用户path环境变量中:
setx "path" "D:\test;%path%"
setx设置永久系统环境变量
setx加上/m参数表示设置的是系统的环境变量,格式如下所示:
setx env_name env_value /m
注意:有的路径中会带有空格,所以最好用双引号把变量和值都包裹起来,也就是写成如下形式:
setx "env_name" "env_value" /m
例如,设置当前路径%cd%到系统环境环境变量中:
setx "Path" "%cd%;%path%" /m
注意:setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。
注意:setx可能会在环境变量中设置多个相同的值,例如,在当前cmd窗口中运行:
setx "Path" "D:\test;%path%" /m
然后再重新打开cmd窗口,进入D:\test路径,然后再次运行:
setx "Path" "D:\test;%path%" /m
这样D:\test将会在path环境变量中出现两次.
用setx设置永久环境变量及注意事项
设置用户环境变量
setx ENV_NAME env_value
设置系统环境变量
setx ENV_NAME env_value /m
注意1.
在某些情况下会出现“setx 无效语法 默认选项不能超过'2'次”的错误,据信是因为原先的环境变量中存在空格导致的,可使用双引号进行避免。
注意2.
setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。所以当设置path这样内容较为丰富的环境变量时,要一次到位,而不要针对同一变量反复调用setx。例如:
正确做法:
set path_=%Path%
setx “Path” “%path_%;newpath1;newpath2” /m
错误做法:
set path_=%Path%
setx “Path” “%path_%;newpath1” /m
setx “Path” “%path_%;newpath2” /m
上述错误的做法将会漏掉newpath1。