bat批处理之if

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

  1、判断驱动器、文件或文件夹是否存在,用 if exist 语句:
if 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:
rem 如果退出代码为1(不成功)就跳至标题1处执行
if errorlevel 1 goto 1
rem 如果退出代码为0(成功)就跳至标题0处执行
if errorlevel 0 goto 0
:0
echo 命令执行成功!
goto exit
:1
echo 命令执行失败!
goto exit
:exit


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

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


    等于           equ              equal

    大于           gtr        greater than

    大于或等于     geq        greater than or equal

    小于           lss        less than

    小于或不等于   leq        less than or equal

    不等于         neq              no equal

if语句还有一个精简格式:if 条件表达式 语句,它的含义是:如果条件表达式成立,将执行语句,否则,什么也不做。

多层 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
    )


 

发布了15 篇原创文章 · 获赞 7 · 访问量 3702

猜你喜欢

转载自blog.csdn.net/weixin_40650190/article/details/104009094
今日推荐