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命令实现逻辑运算符相关推荐

  1. 【WINDOWS / DOS 批处理】findstr、find命令对汉字的支持

    在WINDOWS / DOS 批处理编程中,使用findstr.find命令都可在文件中查找文本,但是它们对汉字的支持都存在如下"缺陷": 使用 findstr.find命令查找汉 ...

  2. 终极dos批处理循环命令详解

    ---恢复内容开始--- 终极dos批处理循环命令详解 格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令 ...

  3. 【WINDOWS / DOS 批处理】choice命令之参数完整解析

    [命令格式] CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] [/?] [命令功能] 该命令允许用户从选项列表中选择一个 ...

  4. 【WINDOWS / DOS 批处理】for命令详解(一)

    for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...

  5. 【WINDOWS / DOS 批处理】for命令详解(八)

    for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...

  6. 【WINDOWS / DOS 批处理】dir命令参数详解(二)

    dir命令参数详解(一) dir命令参数详解(二) 命令格式 DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] ...

  7. 【WINDOWS / DOS 批处理】if命令参数详解(二)

    if命令参数详解(一) if命令参数详解(二) [格式四]IF [ /I ]  [ NOT ]  string1 compare-op string2 command string1 compare- ...

  8. 【WINDOWS / DOS 批处理】findstr命令之参数详解(一)

    目录 命令格式 命令功能 [filename参数] [/I参数] [/N参数] [/X参数] [/F:file参数] [/G:file参数] [strings和/C:string参数] [/R参数和/ ...

  9. 【WINDOWS / DOS 批处理】findstr命令之参数详解(二)

    findstr命令之参数详解(一)[共三篇] findstr命令之参数详解(三)[共三篇] 目录 命令格式 [/B参数和/E参数] [/S参数] [/D:dirlist参数] [/A:coloratt ...

最新文章

  1. Tomcat init 脚本并添加服务自启动
  2. python-判断元素是否在字典中
  3. 徐雷FrankXu 内推 杭州 蚂蚁金服招聘 java开发工程
  4. Spring Boot Redis Cluster 实战干货
  5. 根据谁创建资源授权资源
  6. 20145324 《Java程序设计》第6周学习总结
  7. 防止Linux库so中的接口冲突
  8. ES6——rest参数
  9. 点评10款Github上最火爆的国产开源项目
  10. 23种设计模式(十六)接口隔离之中介者
  11. 基于C#+AE的地图要素的添加(比例尺、指北针、图例)
  12. matlab对比度拉伸代码,图像增强常用代码
  13. Macbook同时访问内外网
  14. Threejs中使用A*算法寻路导航,Threejs室内室外地图导航
  15. 惠普服务器停电后进不了系统,惠普电脑出现了startup menu 然后按f10进不去bios。进入的是Windows启动项...
  16. List和Map集合遍历的3种方式
  17. KNN实现海伦约会预测
  18. php 去重数组,php 数组 去重
  19. Android之粗仿微信6.0——微信分界面
  20. 简述使用BIND配置本地DNS服务器(centos 6.8)

热门文章

  1. 解锁Vue百度地图加载的N种姿势
  2. php百度地图接口两点测距,百度地图Api 根据两个坐标点计算距离
  3. [dp]leetcode1143:最长公共子序列LCS (medium)
  4. 计算机用户账户密码重置,简单三步重置忘记的电脑密码,记得收藏!
  5. 《新编计算机科学概论》一第0章 绪  论
  6. html如何上下滚动字幕,css如何做滚动字幕效果?
  7. 网站加入滚动字幕或公告说明
  8. 【行为管理篇】02. 路由模式连接 ❀ 深信服上网行为管理
  9. Qt QTcpSocket 客户端设计(自动重连、多线程处理、发送大数据包、同步方式)
  10. 李国庆是如何被“踢出”当当的?