bat批处理之if

if用于条件判断,适用于以下情形:

  1、判断驱动器、文件或文件夹是否存在,用 if exist 语句:

if [not] exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)
if [not] exist 文件路径 del 文件路径下的文件

    2、判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句;

if [not] "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)

      3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;

if [not] 1 equ 2 (echo 1等于2) else (echo 1不等于2)

     4、判断某个变量是否已经被赋值,用 if defined str 语句;

if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)


    5、检测命令执行完后的返回值做出判断,用if [not] errorlevel number command,示例如下:

dir z:                                      

if errorlevel 1 goto 1                      rem 如果退出代码为1(不成功)就跳至标题1处执行
if errorlevel 0 goto 0                      rem 如果退出代码为0(成功)就跳至标题0处执行

:0
echo 命令执行成功!
goto exit
:1
echo 命令执行失败!
goto exit
:exit


判断字符串是否相等的时候,if会区分大小写,比如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分大小写,则需要添加 /i 开关,使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符号是连续的"=="而非单独的"="。

判断两个数值之间的大小关系,除了等于用equ之外,还有其他的关系符号,所有适用于if语句的关系符号见下表:

 

中文英文关系符号
等于equalequ
大于 greater thangtr
 大于或等于greater than or equalgeq
小于less thanlss
小于或不等于less than or equalleq
不等于no equalneq

 

if语句三种格式:

(1)if 条件表达式 (语句)                ( 如果条件表达式成立,将执行语句,否则,什么也不做)

(2)if 条件表达式 (语句)     else (语句)

(3)if 条件表达式 (语句)     else if  条件表达式 (语句)     else (语句)

多层 if 嵌套的语法举例:

    if exist a.txt (
          if exist 1.txt (
                echo 存在 a.txt 和 1.txt
          ) else (
                echo 存在 a.txt 但是不存在 1.txt
          )
    ) else if exist b.txt (
          echo 不存在 a.txt 但是存在 b.txt    
    ) else (
          echo 不存在 a.txt 和 b.txt
    )


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值