批处理 if 条件

1 基本结构

语法

if 条件表达式 命令语句

if用于判断条件是否成立,成立时执行相应的命令语句。如果不成立,则不执行。


示例代码

09-if-01-基本.bat,批处理文件内容如下。

@ echo off

set score=100
if %score% == 100   echo xiaobutech,满分

pause

声明变量score并初始化为100,判断如果是100分则显示满分。


运行结果

img

条件成立,显示满分。

如果将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

运行结果

img


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

运行结果

img


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

运行效果

img