IF语句是批处理中执行的条件分歧处理。

批处理中,IF分歧的写法有好几种,接下来,我们来一个一个的分析IF语法的结构。

1、IF [NOT] ERRORLEVEL 番号 批处理命令

当ERRORLEVEL的值大于等于指定的番号的值时,执行指定的批处理命令。

@echo offcall :called0
IF ERRORLEVEL 100 (echo ERRORLEVEL = %ERRORLEVEL%
)call :called1
IF ERRORLEVEL 100 (echo ERRORLEVEL = %ERRORLEVEL%
)call :called2
IF ERRORLEVEL 100 (echo ERRORLEVEL = %ERRORLEVEL%
)exit /b 200:called0
SETLOCALecho called0exit /b 99
ENDLOCAL:called1
SETLOCALecho called1exit /b 100
ENDLOCAL:called2
SETLOCALecho called2exit /b 101
ENDLOCAL

运行的结果为:

C:\Users\liuhongying>F:\tmp\a.bat

called0
called1
ERRORLEVEL = 100
called2
ERRORLEVEL = 101

发现,在返回值跟100比的时候,只有等于100和大于100的时候,执行到了下面的批处理命令,而在99的时候,就没有执行批处理命令,这个测试你结果,你就应该明白了吧!

2、IF [NOT] 文字列1==文字列2 批处理命令

这个判断是比较文字列1和文字列2是不是相等,如果是变量,就要用%来取出变量的值来比较。

IF [/I] [NOT] 文字列1==文字列2 批处理命令

有一个控制开关,/I,是控制比较的时候是不是忽略大小写。如果有/I这个开关存在的时候,比较的时候就会忽略大小写去比较。

看看下面这个例子,你就 应该全部明白了。

@echo offIF abcdef==abcdef (echo abcdef==abcdef
)IF AbCdEF==abcdef (echo AbCdEF==abcdef
)IF /I ABCDEF==abcdef (echo ABCDEF==abcdef
)IF /I AbCdEF==abcdef (echo AbCdEF==abcdef
)

F:\tmp>a.bat
abcdef==abcdef
ABCDEF==abcdef
AbCdEF==abcdef

3、IF [NOT] EXIST 文件名 批处理命令

帮助上面写的是判断文件名是否存在,其实,这个判断方法既可以判断文件是否存在,又可以判断路径是不是存在。

@echo offIF EXIST F:\tmp\a.bat (echo EXIST:F:\tmp\a.bat
)IF EXIST F:\tmp (echo EXIST:F:\tmp
)

执行结果:

F:\tmp>a.bat
EXIST:F:\tmp\a.bat
EXIST:F:\tmp

4、IF [/I] 文字列1 比較演算子 文字列2 批处理命令

对文字列1和文字列2按照比较演算子进行比较,比较结果为真的时候,就执行批处理命令指定的处理。

下面对几种比较演算子进行进行介绍。

EQU - 等于(等しい)
NEQ - 不等于(等しくない)
LSS - 小于(より小さい)
LEQ - 小于等于(以下)
GTR - 大于(より大きい)
GEQ - 大于等于(以上)

下边这个例子,对这几个判断符进行解说

@echo offecho EQU
IF a EQU a (echo a EQU a
)IF a EQU b (echo a EQU b
)echo NEQ
IF a NEQ a (echo a NEQ a
)IF a NEQ b (echo a NEQ b
)echo LSS
IF a LSS a (echo a LSS a
)IF a LSS b (echo a LSS b
)IF b LSS a (echo b LSS a
)echo LEQ
IF a LEQ a (echo a LEQ a
)IF a LEQ b (echo a LEQ b
)IF b LEQ a (echo b LEQ a
)echo GTR
IF a GTR a (echo a GTR a
)IF a GTR b (echo a GTR b
)IF b GTR a (echo b GTR a
)echo GEQ
IF a GEQ a (echo a GEQ a
)IF a GEQ b (echo a GEQ b
)IF b GEQ a (echo b GEQ a
)

运行结果为:

F:\tmp>a.bat
EQU
a EQU a
NEQ
a NEQ b
LSS
a LSS b
LEQ
a LEQ a
a LEQ b
GTR
b GTR a
GEQ
a GEQ a
b GEQ a

5、IF CMDEXTVERSION 番号 批处理命令

最初的CMDEXTVERSION的值是1,当扩展命令可以使用的时候,CMDEXTVERSION的值就比1大了。

并且,当扩张技能无效的时候,这个表达式命题恒为假。

更加具体的作用,这里不去探讨了,如果以后有需要,用到了,在去追加吧!

6、IF DEFINED 変数 批处理命令

如果指定的变数定义的时候,就执行批处理命令指定的处理。更加准确的描述应该是,指定的便是的值是空的时候,句执行批处理命令指定的处理。

@echo offset var1=abc
set var3=
set var4=   IF DEFINED var1 (echo DEFINED var1
)IF DEFINED var2 (echo DEFINED var2
)IF DEFINED var3 (echo DEFINED var3
)IF DEFINED var4 (echo DEFINED var4
)

*var3=后面是没有设置空格

*var4=后面是设置空格的

运行结果为:

F:\tmp>a.bat
DEFINED var1
DEFINED var3

PS:以上的语法介绍中,都没有详细介绍另个重要点

A:所有加[NOT]的地方,如果加了NOT以后,就将判断的调节取反。

B:所有的命令都没有介绍else的语法,所有的IF判断,都是可以再行后最佳【else 批处理命令】,也就是说,当判断条件不成立的时候,执行批处理命令指定的处理。

  更推荐的写法是,所有批处理命令都加上小括号,如下述结果

IF 条件 (条件为真的时候的处理
) else (条件为假的时候的处理
)

转载于:https://www.cnblogs.com/gekal/p/3220397.html

DOS批处理命令-if语句相关推荐

  1. 克隆技术与DOS批处理命令

    一.克隆工具: Ghost工具如下: 磁盘克隆: 1.磁盘克隆到另一个磁盘,会将被克隆磁盘数据覆盖.方法local→disk→to disk 2.磁盘写成镜像文件.方法local→disk→to im ...

  2. 计算机清除服务命令,计算机Dos批处理命令,一键清理Windows系统垃圾的bat代码...

    通过计算机Dos批处理命令,编写一键清理Windows系统垃圾的bat代码,简单易懂,小白也可以学学. [新建记事本]-[复制代码]-[粘贴代码]-[重名名记事本,后缀名为bat] 开始时,选择是否清 ...

  3. dos批处理命令详解

    一.简单批处理内部命令简介 1.Echo 命令   打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法:   echo [{on│off}] [mess ...

  4. dos批处理命令详解(转)

    一.简单批处理内部命令简介 1.Echo 命令   打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法:   echo [{on│off}] [mess ...

  5. DOS 批处理命令学习1

    1 控制台颜色设置 命令和参数, color fc, 变为如下, color 2,变为如下: 2 GOTO 和 call 命令格式: 新建一个testgoto.bat:当前目录有如下内容: 执行此批处 ...

  6. DOS批处理命令之start命令

    start 命令语法:关于DOS(磁盘操作系统)

  7. Windows操作系统cmd/Dos批处理命令与脚本手册bat

    Windows操作系统命令与脚本总结 管理员权限: 添加账号并加入管理员组 添加用户至远程桌面组 允许修改密码 防火墙 : 关闭防火墙 匹配出注册表信息中的软件: 获取完整补丁信息(比systemin ...

  8. java调用bat脚本实现pppoe拨号_使用 DOS 批处理命令实现宽带 ADSL 开机自动连接

    利用 Windows 的自带命令实现宽带自动连接 笔者使用的是云南文山州网通的全包月宽带,每次开机后第一件事就是连接网络,由于云南文山州网通拨号程序没有提供自动拨号选项,因此必须手工输入用户名和密码, ...

  9. 批处理处理远程计算机,使用DOS批处理命令实现远程主机的重启与关机、注销

    如果是win98系统: 在快捷方式的属性里输入如下内容:rundll32.exe,user.exe,exitwindows 如果是NT内核的系统,如:winxp win2000.2003(它里面没有s ...

最新文章

  1. R语言ggplot2可视化:在选定数据点周围添加圆圈(Add Circles Around Select Data Points)
  2. 【数据平台】pandas按条件去重
  3. springMVC项目在jboss7中配置应用自己的log4j--转载
  4. keras多输出模型
  5. mongo oplog 整理
  6. 【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++
  7. 用memcached实现session共享
  8. ABP入门系列(5)——展现层实现增删改查
  9. Android轮播图
  10. 人工智能语音交互技术与应用
  11. 序列平稳性和纯随机性检验
  12. PPT怎么切换不同的母版
  13. 粒子滤波的通俗解释,傻子的搜寻策略--我的理解_拔剑-浆糊的传说_新浪博客
  14. 《阿里云前端技术周刊》第二期
  15. 【Microsoft Azure 的1024种玩法】二十八. 基于Azure Cloud搭建IPS入侵防御系统实现安全流量实时分析
  16. [0]SWM181-从零开发华芯微特MCU
  17. win7系统IE浏览器安装遇到提示“Internet Explorer未能完成安装”如何解决
  18. 分析基于Jsp+Servlet+JavaBean的个人信息管理系统的运行流程
  19. AndroidStudio查看模拟机生成的数据库文件
  20. [架构设计] 结构型模型

热门文章

  1. 787. K 站中转内最便宜的航班(加权有向图的最短路径)
  2. Mysql Blob 类型 (常识)
  3. 计算机准考证要打印多大的纸?打印大了,可以吗?
  4. Word 2010 总是崩溃解决办法总结
  5. 【玩具】获取母校师资信息
  6. Layui 修改表格样式
  7. iOS开发 -- IOS7界面兼容,从4.3到7.0兼容的NavigationBar ,IOS7 NavigationBar 适配
  8. 判断QQ,微信,微博是否安装
  9. DBeaver Enterprise Edition 22.0 企业版
  10. Docker配置腾讯云镜像加速器