批处理 if 条件
1 基本结构
语法
if 条件表达式 命令语句
 
if用于判断条件是否成立,成立时执行相应的命令语句。如果不成立,则不执行。
示例代码
09-if-01-基本.bat,批处理文件内容如下。
@ echo off
set score=100
if %score% == 100   echo xiaobutech,满分
pause
 
声明变量score并初始化为100,判断如果是100分则显示满分。
运行结果

条件成立,显示满分。
如果将score的值修改为90,则不会进行满分显示。
2 if多条语句
如果命令语句有多条语句,需要用()包含多条语句。
语法
if 条件表达式 (
语句1
…
语句n
)
 
注意事项
1)这里是小括号,并不是花括号。
2)条件表达式的前后都需要空格。即小括号(前需要有空格。
示例代码
09-if-02-多条语句.bat,批处理文件内容如下。
@ echo off
set score=100
if %score% == 100 (
  echo xiaobutech,满分
  echo 关关加鸡退
)
pause
 
运行结果

3 if else
语法
if 条件表达式 (
    语句组1;
)else(
    语句组2;
)
 
当条件表达式成立时,执行语句组1中的内容,否则执行语句组2中的内容。
常见问题
else必须与上一个)在同一行。否则会报错“else不是内部或外部命令”。
示例代码
09-if-03-else.bat,批处理文件内容如下。
@ echo off
set score=100
if %score% == 100 (
  echo xiaobutech,满分 
) else (
  echo xiaobutech,还有进步空间
)
pause
 
运行结果

4 if else if
语法
if 条件表达式1 (
语句组1;
)else if 条件表达式2 (
语句组2;
)else(
 语句组3
)
 
if与else中间还能嵌套多个else if。
注意事项
else if的)、else、if、(需要在一行。
示例代码
09-if-04-elseif.bat,批处理文件内容如下。
@ echo off
set /P score=请输入分数:
if %score% lss 60 (
  echo xiaobutech,不及格 
) else if %score% lss 70 (
  echo xiaobutech,及格
) else if %score% lss 80 (
  echo xiaobutech,中
) else if %score% lss 90 (
  echo xiaobutech,良
) else (
  echo xiaobutech,优秀
)
pause
 
运行效果
