批处理 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
运行效果