学无止境

书山有路勤为径,
学海无涯苦作舟!

0%

Windows通过批处理命令set设置环境变量

set 命令:设置变量

set命令用于设置当前cmd窗口中的环境变量,只在当前cmd窗口有效,cmd窗口关闭后将会失效,而其不会影响到系统中保存的用户环境变量。

  • set临时设置环境变量,当前cmd窗口有效
    1
    set env_name=env_value
  • setx设置永久用户环境变量
    1
    setx env_name env_value
  • setx设置永久系统环境变量
    setx加上/m参数表示设置的是系统的环境变量
    1
    setx /m env_name env_value
    注意:setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。

set 命令:显示环境变量

set 会显示当前所有的系统环境变量
set c 会显示所有以 c 或 C开头的变量。 ( 即:不区分大小写 )

1
set env_name 或 echo %env_name%

set 命令:带参数 /a 的 set 数值计算

1
2
3
4
5
set /a var=2*2
set /a var=2/2
set /a var=(1+1)+(1+1)
set /a a=1+1,b=2+1,c=3+1 //使用","将表达式分隔。
echo %a% %b% %c%

set 命令:带参数 /p 的 set 命令:允许变量值是用户的输入行

1
2
set /p str=Please input you string.
echo Your input is: %str%.

set 命令:set替换作用

1
set des=%src:str1=str2%  

把源变量src的值中所有的str1字符串替换成str2字符串,从而组合形成目标变量des的值。

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
set src= China I love you
echo 替换前的值: "%src%"
set des=%src:love=hate%
echo 替换后的值: "%des%"
set des=%src: =123%
echo 替换后的值: "%des%"
set des=%src:I=me%
echo 替换后的值: "%des%"
set des=%src:you=she%
echo 替换后的值: "%des%"
pause>nul

set 命令:set取舍作用

1
set des=%src:~n,m% 

把源变量src的值字符串从第n个索引位开始(n为负,是从尾部开始),取m(m不存在时,代表取后面所有的)位组成目标变量des的值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
set src=www.baidu.com.cn
echo %src%
set des=%src:~1,2%
echo %des%
set des=%src:~4,5%
echo %des%
set des=%src:~1,7%
echo %des%
set des=%src:~5%
echo %des%
set des=%src:~-5%
echo %des%
set des=%src:~0,-5%
echo %des%
set des=%src:~2,-3%
echo %des%
pause>nul

命令解析:

  • 第 4 行:~1,2 表示:把源变量src的值字符串从第1个索引位开始,取2位组成目标变量des的值(即:ww)。
  • 第 6 行:~4,5 表示:把源变量src的值字符串从第4个索引位开始,取5位组成目标变量des的值(即:baidu)。
  • 第 8 行:同理第4、6行(结果即:ww.baid)。
  • 第 10 行:~5 表示:把源变量src的值字符串从第5个索引位开始,取后面所有组成目标变量des的值(即:aidu.com.cn)。
  • 第 12 行:~-5 表示:把源变量src的值字符串从尾部开始取5个字符组成目标变量des的值(即:om.cn)。
  • 第 14 行:~0,-5 表示:把源变量src的值字符串从0索引位开始,至尾部数第五个索引位为止取出组成目标变量des的值(即:www.baidu.c)
  • 第 16 行:与第14行同理(结果即:w.baidu.com)。