一、变量
- 在windows操作系统中,变量可分为两种:
一种是系统已经定义好的变量,叫做“系统变量”;
另一种就是用户自己定义的变量。也叫做“自定义变量”。
打开一个cmd窗口,输入set命令,回车可获得系统环境变量。
若要获取单个系统变量的值,可在cmd下输入
echo %computername% ::获取计算机名
二、set命令
1、/p 参数使批处理与用户进行交互
@echo off
set /p var = please input:
::打印用户输入的数据
echo %var%
pause
2、/a 参数获取右侧表达式的结果,若未加,则按字符处理
@echo off
set /a var = 1+1
echo %var%
pause
输出结果:2
3、逻辑运算:
& 与运算,一假则假;
| 或运算,一真则真;
^ 异或运算,异为真,同为假;
% 取模运算,取余数
另外还有<<、 >>位运算符,可结合二进制数的运算知识
格式:
set /a var = 1"|"0 ::结果为1
set /a var = 1"^"1 ::结果为0
4、 替换字符串
set var = hello.world.!
set var = %var:llo=被替换的字符串%
echo %var%
输出结果:he被替换的字符串.world.!
5、 截取字符串
set var = www.baidu.com
set var = %var:~1,3%
三、if 语句
运行if /? 可获取帮助文档,很详细。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT 指定只有条件为 false 的情况下,Windows 才应该执行该命令。
ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的返回代码,指定条件为 true。
string1==string2 如果指定的文字字符串匹配(可理解成相同的字符串),指定条件为 true。
EXIST filename 如果指定的文件名存在,指定条件为 true。
command 如果符合条件,指定要执行的命令。如果指定的条件为 FALSE,命令后可跟 ELSE 命令,该命令将在 ELSE 关键字之后执行该命令。
1、IF [NOT] ERRORLEVEL number do something 如果返回码是什么, 就做某事儿。(ERRORLEVEL number 是错误码,也称返回码。只是这么理解)
示例
@echo off
ipconfig
if errorlevel 1 goto a
if errorlevel 0 goto b
:a
echo 结果为 ipconfig 执行失败!
pause
exit
:b
echo 结果为 ipconfig 正确执行!
pause
2、IF [NOT] string1==string2 do something 如果字符串相等或不等, 就做某事儿
如果与指定的文字字符串匹配,指定条件为 true。
示例
@echo off
set str1=abcd
set str2=abcd
if %str1% == %str2%
echo 字符串str1与str2相等!
pause
3、IF [NOT] EXIST filename do something 如果某个文件存在, 就做某事儿
如果指定的文件名存在,指定条件为 true。
示例
@echo off
if not exist mstsc.exe
echo 当前目录下存在文件mstsc.exe
pause
注意:以上各句中的[NOT]是可选项,表示只有条件为 false 的情况下,才应该执行该命令。(大家自行体会一下,有种只可意会不可言传的感觉😁)
四、if...else...语句
ELSE 子句必须在 IF 之后且必须出现在同一行上(重点)。
示例
@echo off
IF EXIST a.txt (del a.txt) ELSE echo 不存在文件!
pause
::如果存在文件 a.txt 则删除,否则显示 “不存在文件!”
重点:1、ELSE子句必须在if之后,且必须出现在同一行;2、if与ELSE之间使用"()"隔开,这个()内的命令就是满足条件后要执行的命令。
另外if也可以嵌套使用,跟其他语言差不多,这里就不多说了。
网友评论