批处理命令—set
作者:互联网
set 命令:设置变量
(1) set 显示环境变量
set 会显示当前所有的系统环境变量
set c 会显示所有以 c 或 C开头的变量。 ( 即:不区分大小写 )
set com 显示所有以 com或 Com开头的变量
(2) set 设置环境变量
如:set str=ok // 就是将变量 str 的值设置成字符串“ OK”注:如果在变量值中有特殊字符,则 set 后面的表达式需要用双引号括起来。如: set “str=ok> ”
(3) 带参数 /a 的 set 数值计算
set 的/A 参数就是让 SET可以支持数学符号进行加减等一些数学运算 。支持的数学运算包含(优先权递减) :
() // 分组
! ~ // 一元运算符
* / % // 算数运算符
+ // 算数运算符
<<>> // 逻辑移位
& // 按位“与”
^ // 按位“异”
| // 按位“或”
= *= /= %= += -= // 赋值
&= ^= |= <<= >>=
, // 表达式分隔符
如: set /a var=10-2 // 结果: var=8 ,如果没有 /a ,则 var 的值是字符串 10-2
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 /a var=1 “&” 1
set /a var=1 “%” 1
set /a var=2 “<<” 2
(4) 带参数 /p 的 set 命令:允许变量值是用户的输入行
如:set /p str=Please input you string.
echo Your input is: %str%.
注意: set /p 的特殊用法set /p=A // 直接显示等号后面的内容,相当于 echo A. 但是显示内容后需要手动按回车键后才能继续执行下一条语句。set /p=A<null // 显示内容并不带回车。即:显示完后立即执行下一条语句。由于没有回车,下一条语句的输出会跟在这条语句的后面。
(5)set替换作用
如:set des=%src:str1=str2%
作用简述:把源变量src的值中所有的str1字符串替换成str2字符串,从而组合形成目标变量des的值。
应用示例:新建文本文件,命名为set_swap,修改文件类型为bat,用Notepad++打开编辑内容如下:
1 @echo off 2 set src= China I love you 3 echo 替换前的值: "%src%" 4 set des=%src:love=hate% 5 echo 替换后的值: "%des%" 6 set des=%src: =123% 7 echo 替换后的值: "%des%" 8 set des=%src:I=me% 9 echo 替换后的值: "%des%" 10 set des=%src:you=she% 11 echo 替换后的值: "%des%" 12 pause>nul
执行结果:
(6) set取舍作用
如:set des=%src:~n,m%
作用简述:把源变量src的值字符串从第n个索引位开始(n为负,是从尾部开始),取m(m不存在时,代表取后面所有的)位组成目标变量des的值。
应用示例:新建文本文件,命名为set_at,修改文件类型为bat,用Notepad++打开编辑内容如下:
1 @echo off 2 set src=www.baidu.com.cn 3 echo %src% 4 set des=%src:~1,2% 5 echo %des% 6 set des=%src:~4,5% 7 echo %des% 8 set des=%src:~1,7% 9 echo %des% 10 set des=%src:~5% 11 echo %des% 12 set des=%src:~-5% 13 echo %des% 14 set des=%src:~0,-5% 15 echo %des% 16 set des=%src:~2,-3% 17 echo %des% 18 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)。
标签:src,set,变量,批处理,des,echo,命令,des% 来源: https://www.cnblogs.com/xiaocaitailang/p/16588844.html