当前位置: 代码迷 >> 综合 >> bat批处理之if
  详细解决方案

bat批处理之if

热度:75   发布时间:2024-01-25 05:30:56.0

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)


  相关解决方案