cmd环境变量命令set 设置永久环境变量命令setx

    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。