【WINDOWS / DOS 批处理】if命令实现逻辑运算符
if命令参数详解
【IF命令格式】IF [opt] [not] condition cmdA else cmdB
- not关键字使IF命令支持逻辑运算符 “非”(NOT)
- condition 不支持逻辑运算符 “与”(AND)和 “或”(OR)
- 在 cmdA 和 cmdB 中都支持支持IF命令嵌套,示例如下:
:: 本示例包含汉字,如执行乱码,请使用 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
yellowC:\>demo
请输入一种颜色:blue
blueC:\>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 filmC:\>demo
请输入年级:4
请输入班级:2
not see filmC:\>demo
请输入年级:1
请输入班级:3
not see filmC:\>
二、在 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 filmC:\>demo
请输入年级:4
see filmC:\>demo
请输入年级:2
not see filmC:\>
【应用实例】
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 filmC:\>demo
请输入年级:3
请输入班级:1
not see filmC:\>demo
请输入年级:4
请输入班级:1
see filmC:\>demo
请输入年级:4
请输入班级:3
not see filmC:\>demo
请输入年级:5
请输入班级:1
not see filmC:\>
写作不易,如果本文对您有用,请 “在下面一圈三连”。
【WINDOWS / DOS 批处理】if命令实现逻辑运算符相关推荐
- 【WINDOWS / DOS 批处理】findstr、find命令对汉字的支持
在WINDOWS / DOS 批处理编程中,使用findstr.find命令都可在文件中查找文本,但是它们对汉字的支持都存在如下"缺陷": 使用 findstr.find命令查找汉 ...
- 终极dos批处理循环命令详解
---恢复内容开始--- 终极dos批处理循环命令详解 格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令 ...
- 【WINDOWS / DOS 批处理】choice命令之参数完整解析
[命令格式] CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] [/?] [命令功能] 该命令允许用户从选项列表中选择一个 ...
- 【WINDOWS / DOS 批处理】for命令详解(一)
for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...
- 【WINDOWS / DOS 批处理】for命令详解(八)
for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...
- 【WINDOWS / DOS 批处理】dir命令参数详解(二)
dir命令参数详解(一) dir命令参数详解(二) 命令格式 DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] ...
- 【WINDOWS / DOS 批处理】if命令参数详解(二)
if命令参数详解(一) if命令参数详解(二) [格式四]IF [ /I ] [ NOT ] string1 compare-op string2 command string1 compare- ...
- 【WINDOWS / DOS 批处理】findstr命令之参数详解(一)
目录 命令格式 命令功能 [filename参数] [/I参数] [/N参数] [/X参数] [/F:file参数] [/G:file参数] [strings和/C:string参数] [/R参数和/ ...
- 【WINDOWS / DOS 批处理】findstr命令之参数详解(二)
findstr命令之参数详解(一)[共三篇] findstr命令之参数详解(三)[共三篇] 目录 命令格式 [/B参数和/E参数] [/S参数] [/D:dirlist参数] [/A:coloratt ...
最新文章
- Tomcat init 脚本并添加服务自启动
- python-判断元素是否在字典中
- 徐雷FrankXu 内推 杭州 蚂蚁金服招聘 java开发工程
- Spring Boot Redis Cluster 实战干货
- 根据谁创建资源授权资源
- 20145324 《Java程序设计》第6周学习总结
- 防止Linux库so中的接口冲突
- ES6——rest参数
- 点评10款Github上最火爆的国产开源项目
- 23种设计模式(十六)接口隔离之中介者
- 基于C#+AE的地图要素的添加(比例尺、指北针、图例)
- matlab对比度拉伸代码,图像增强常用代码
- Macbook同时访问内外网
- Threejs中使用A*算法寻路导航,Threejs室内室外地图导航
- 惠普服务器停电后进不了系统,惠普电脑出现了startup menu 然后按f10进不去bios。进入的是Windows启动项...
- List和Map集合遍历的3种方式
- KNN实现海伦约会预测
- php 去重数组,php 数组 去重
- Android之粗仿微信6.0——微信分界面
- 简述使用BIND配置本地DNS服务器(centos 6.8)
热门文章
- 解锁Vue百度地图加载的N种姿势
- php百度地图接口两点测距,百度地图Api 根据两个坐标点计算距离
- [dp]leetcode1143:最长公共子序列LCS (medium)
- 计算机用户账户密码重置,简单三步重置忘记的电脑密码,记得收藏!
- 《新编计算机科学概论》一第0章 绪 论
- html如何上下滚动字幕,css如何做滚动字幕效果?
- 网站加入滚动字幕或公告说明
- 【行为管理篇】02. 路由模式连接 ❀ 深信服上网行为管理
- Qt QTcpSocket 客户端设计(自动重连、多线程处理、发送大数据包、同步方式)
- 李国庆是如何被“踢出”当当的?