【IF命令格式】IF [opt] [not] condition cmdA else cmdB
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- setlocal enableDelayedExpansion
- set /p "color=请输入一种颜色:"
- if %color% == yellow (
- echo yellow ) else (
- if %color% == blue ( echo blue) else (
- echo 颜色不符合要求
- )
- )
运行
【标注一】 下载Notepad++
- C:\>demo
- 请输入一种颜色:yellow
- yellow
-
- C:\>demo
- 请输入一种颜色:blue
- blue
-
- C:\>demo
- 请输入一种颜色:other
- 颜色不符合要求
-
- C:\>
在一种编程语言中,支持“条件与” 、“条件或”是必要的,在其它语言(例如:C语言)中,在条件中使用逻辑运算符即可实现该功能。但是在WINDOWS / DOS 脚本编程中,IF命令的condition 不支持逻辑运算符,所以只好“变相的”来实现。
【解决之道】
一、在 cmdA 中嵌套IF命令来实现“条件与”,IF命令格式如下:
- IF [opt] conditionA (
- IF [opt] conditionB (
- IF [opt] conditionC (
- ...
- )
- )
- )
示例
需求:只有三年级二班的同学才可以看电影,其它的同学都不可以
实现如下:
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- setlocal enableDelayedExpansion
- set /p "grade=请输入年级:"
- set /p "class=请输入班级:"
- if %grade% == 3 (
- if %class% == 2 ( echo see film )
- ) else (
- echo not see film
- )
运行
- C:\>demo
- 请输入年级:3
- 请输入班级:2
- see film
-
- C:\>demo
- 请输入年级:4
- 请输入班级:2
- not see film
-
- C:\>demo
- 请输入年级:1
- 请输入班级:3
- not see film
-
- C:\>
二、在 cmdB 中嵌套IF命令来实现“条件或”,IF命令格式如下:
- IF [opt] conditionA cmdX else (
- IF [opt] conditionB cmdY else (
- IF [opt] conditionC cmdZ else (
- ...
- )
- )
- )
示例
需求:三年级或者四年级的同学才可以看电影,其它的同学都不可以
实现如下:
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- setlocal enableDelayedExpansion
- set /p "grade=请输入年级:"
- if %grade% == 3 (
- echo see film
- ) else (
- if %grade% == 4 ( echo see film
- ) else (
- echo not see film
- )
- )
运行
- C:\>demo
- 请输入年级:3
- see film
-
- C:\>demo
- 请输入年级:4
- see film
-
- C:\>demo
- 请输入年级:2
- not see film
-
- C:\>
【应用实例】
IF命令同时实现“条件或”和“条件与”,示例如下:
需求:三年级二班或者四年级一班的同学才可以看电影,其它的同学都不可以
实现如下:
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- setlocal enableDelayedExpansion
- set /p "grade=请输入年级:"
- set /p "class=请输入班级:"
- if %grade% == 3 (
- if %class% == 2 (
- echo see film
- ) else (
- echo not see film
- )
- ) else (
- if %grade% == 4 (
- if %class% == 1 (
- echo see film
- ) else (
- echo not see film
- )
- ) else (
- echo not see film
- )
- )
运行
- C:\>demo
- 请输入年级:3
- 请输入班级:2
- see film
-
- C:\>demo
- 请输入年级:3
- 请输入班级:1
- not see film
-
- C:\>demo
- 请输入年级:4
- 请输入班级:1
- see film
-
- C:\>demo
- 请输入年级:4
- 请输入班级:3
- not see film
-
- C:\>demo
- 请输入年级:5
- 请输入班级:1
- not see film
-
- C:\>
写作不易,如果本文对您有用,请 “在下面一圈三连”。