BZ易风

导航

 

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

 

posted on 2022-06-13 09:40  BZ易风  阅读(617)  评论(0编辑  收藏  举报