【BAT】if命令用法
1、比较类型判断
if [not] <string1>==<string2> <command> [else <expression>]
if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if "123" == "123" (echo true) else (echo false) #进行比较两个字符串是否相等,结果为true
if not "123" == "123" (echo true) else (echo false) #进行比较两个字符串是否不相等,结果为false
添加参数/i,可以强制字符串比较忽略大小写:
if /i "abc" == "ABC" (echo true) else (echo false) #结果为true
除了这种比较写法,还有另外的:
if "123" equ "123" (echo true) else (echo false) #使用equ来进行比较两个字符串是否相等
主要包括:
- EQU - 等于
- NEQ - 不等于
- LSS - 小于
- LEQ - 小于或等于
- GTR - 大于
- GEQ - 大于或等于
2、存在判断
if [not] exist <filename> <command> [else <expression>]
//判断文件是否存在
if exist C:\Users\dell\Desktop\batTest\if.txt (
echo 文件存在
) else (
echo 文件不存在
)
3、结果判断
if结合errorlevel使用:
if [not] ERRORLEVEL <number> <command> [else <expression>]
说明:环境变量errorlevel的初始值为0,当一些命令执行不成功,就会返回一个数值,如:1 ,2 等
- errorlevel 常用来判断上条命令的执行情况,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断
- ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出代码,指定条件为 true
1、如果我们使用if errorlevel number command去使用 errorlevel,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand 操作。实例:
@echo off
xcopy F:\test.bat D:\
if errorlevel 1 echo 文件拷贝失败
pause
输出结果:
2、当使用if %errorlevel%==值 cmmand句式时,它含义是:如果返回的错误码值等于值的时候,将执行cmmand操作
@echo off
xcopy F:\test.bat D:\
if %errorlevel% == /*equ*/ 4 echo 文件拷贝失败
pause
执行结果: