SET命令
作用
set命令在批处理可以用来设置自定义变量,也可以用来修改变量的值.
作用1.设置变量
格式:set 是命令 var是变量名 =号右边的"我是值"是变量的值
@echo off set var=变量值 echo %var% pause
加一个"/P"参数,可以让用户自己输入变量的值
格式:set /p 是命令语法 var是变量名 =号右边的"请输入变量的值: ",这个是提示语,不是变量的值了!
@echo off set /p var=请输入变量的值 echo 您输入了%var% pause
作用2.SET /A expression
set的/A参数就是让SET可以支持数学符号进行加减等一些数学运算
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:
() - 分组
! ~ - 一元运算符
* / % 算数运算符
+ - 算数运算符
<< >> 逻辑移位
& 按位“与”
^ 按位“异”
| 按位“或”
= *= /= %= += -= 赋值
&= ^= |= < <= > >= , 表达式分隔符
例:
@echo off set /a var=1+1 echo %var% pause
这就是一个简单的加法运算。
set /a var=2 - 1 结果是多少呢?如果你看不到结果就echo %var%.....
set /a var=2 * 2 乘法运算
set /a var=2 / 2 除法运算
set /a var=(1+1) + (1+1) 结果等于4 看得懂吧!
set /a a=1+1,b=2+1,c=3+1 运行后会显示一个4,但我们用
echo %a% %b% %c%后看结果,会发现其他数学运算也有效果!,这就是"斗"号的
作用!
@echo off set /a a=1+1,b=2+1,c=3+1 echo %a% %b% %c% pause
set /a var+=1 这样的语法对应原始语法就是set /a var = %var% + 1
注:另外还有一些用逻辑或取余操作符,这些符号,按照上面的使用方法会报错的,如:
@echo off set /a var = 1 & 1 echo %var% pause
对于这样的"逻辑或取余操作符",我们需要把他们用双引号引起来,如:
@echo off set /a var = 1 "&" 1 echo %var% pause
set /a var= 1 "+" 1 异运算
set /a var= 1 "%" 1 取模运算
这些符号也可以用 &= ^= |= <<= >>= 这样的简单用法如
set /a var"+=" 1 等于set /a var = %var% + 1 注意引号
作用3.环境变量替换
%PATH:str1=str2%
%PATH:str1=str2%这个操作就是把变量%PATH%的里的str1全部用str2替换
@echo off set a=bbs.verybat.cn echo 替换前的值:"%a%" set a=%a:.=伤脑筋% ::字a是要进行字符替换的变量的值,"."为要替换的值,"伤脑筋"为替换后的值! echo 替换后的值:"%a%" pause
%PATH:~m,n%
从第m位开始,后n位变量替换
@echo off set a=bbs.verybat.cn set a=%a:~1,3% echo %a% pause
%PATH:~-m%
替换最后m位
@echo off set a=bbs.verybat.cn set a=%a:~-3% echo %a% pause
%PATH:~n,-m%
除最后m位以外,其余从第n位开始全部替换
@echo off set a=bbs.verybat.cn set a=%a:~2,-3% echo %a% pause