if命令参数详解(一)

if命令参数详解(二)

命令格式

在CMD.EXE禁用命令扩展模式下,IF 命令可以使用以下三种格式:

【格式一】IF [NOT] ERRORLEVEL number command
【格式二】IF [NOT] EXIST filename command
【格式三】IF [NOT] string1 == string2 command

在CMD.EXE启用命令扩展模式下,IF 命令可以使用的格式如下:

【格式一】和【格式二】,其用法和在CMD.EXE禁用命令扩展模式下的用法一致
在【格式三】中,还可以使用 /I 参数,其完整格式如下:

IF [/I]  [NOT] string1 == string2 command

【格式四】IF [/I]  [NOT]  string1 compare-op string2 command

其中, compare-op 可以是:

  • EQU --- 等于
  • NEQ --- 不等于
  • LSS  --- 小于
  • LEQ  --- 小于或等于
  • GTR  --- 大于
  • GEQ  --- 大于或等于

注意:compare-op 忽略大小写

【格式五】IF [NOT] CMDEXTVERSION number command
 【格式六】IF [NOT]  DEFINED variable command

什么是命令扩展

else子句

上述六种命令格式后面都可跟else子句

  • else关键字后面必须存在空白,不然报错。 如下图:

       

  • 在一行中,不能以else开头

NOT参数       

只有NOT关键字后面的条件为 false 时,才执行 command

示例

C:\>if  abc == abc    echo ok            //  命令一
okC:\>if not abc == abc    echo ok         //  命令二C:\>

解析

  • 命令一:条件“abc == abc”成立,执行命令“echo ok”
  • 命令一:NOT后面的条件“abc == abc”成立(值为true),命令“echo ok”不能被执行

【command参数】

command指定将要执行的命令,例如上例中的 “echo ok

  • 如果前面的条件为 true,则执行 command
  • 如果前面的条件为 FALSE,若存在ELSE子句,则执行 ELSE 子句中的命令;若不存在ELSE子句,则返回。

命令功能

当满足条件时,执行 command

【格式一】IF [NOT] ERRORLEVEL number command

ERRORLEVEL number    如果前一个程序返回的退出代码等于或大于 number ,则ERRORLEVEL number 为 true,否则 ERRORLEVEL number 为false

示例

:: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码  【标注一】
::demo.bat
@echo off
dir /a:d /b | findstr "out"
cd out:: "cd out"命令的退出代码为0
echo %errorlevel%
if not errorlevel 1  (
dir /b
cd ..
) else (
echo out目录不存在
)

【标注一】   下载Notepad++

运行 

C:\>demo
out
0
file_show.txt
myDir
showDir
C:\>

 【格式二】IF [NOT] EXIST filename command

EXIST filename    如果 filename 存在,则EXIST filename为 true,否则 EXIST filename为false

示例

:: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码  【标注一】
::demo.bat
@echo off
dir /a:d /b | findstr "out":: filename可以为目录,也可以为文件
if exist out  (
echo out目录存在
) else (
echo out目录不存在
)

  运行 

C:\>demo
out
out目录存在
C:\>

【格式三】 IF [NOT] string1==string2 command

string1 == string2  当string1 和 string2 相同时,则 string1 == string2 为 true,否则string1 == string2为false

注意:

  1. string1(或string2) 两边的空白会被忽略
  2. string1(或string2) 支持变量解析

 示例 

:: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码  【标注一】
::demo.bat
@echo off:: xyz两边的空白会被忽略
if xyz == xyz echo ok
set var=xyz:: abc两边的空白会被忽略,%var% 被解析为 xyz
if %var% == abc  (
echo good
) else (
echo bad
)

运行 

C:\>demo
ok
bad
C:\>

【WINDOWS / DOS 批处理】if命令参数详解(一)相关推荐

  1. Windows中ipconfig /all命令参数详解

    ipconfig命令参数详解 结果详解 1.主机名:本机PC的hostname,主机名指得是网络上设备的名称,主机名即计算机名,是用来标识计算机在"网上邻居"里是身份的,这样其他用 ...

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

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

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

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

  4. Windows 运行chkdsk磁盘修复工具命令参数详解

    Windows 运行chkdsk磁盘修复工具命令参数详解 chkdsk是Windows系统自带的磁盘修复工具,通常在电脑非正常关机之后再开机,系统就会自动调用chkdsk工具进行磁盘扫描和修复.同时, ...

  5. java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty

    大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath , ...

  6. Mount 命令参数详解

    Mount 命令参数详解 mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该文件夹关联起来,因此只要访问这个文件夹,就相当于访问该分区了. 目前mount已 ...

  7. oracle spool 分隔符_sqlplus--spool命令参数详解

    sqlplus--SPOOL参数详解 Spool是Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西 一.Spool常用的设置 set arraysize 5000;  / ...

  8. linux下top命令参数详解

    linux下top命令参数详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: ...

  9. oracle imp 1403,Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]: 1  将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 expsyste ...

最新文章

  1. SAP MM 物料主数据里某字段看不到就是屏幕格式设置导致的?
  2. 2018年AI和ML(NLP、计算机视觉、强化学习)技术总结和2019年趋势
  3. python乘法口诀编程-中年大叔学编程-用Python打印个九九乘法表
  4. asio中奇怪的代码
  5. oracle 如何形成死锁,ORACLE死锁
  6. ASP.NET与JavaScript联合操作之一 选择DataGrid中的CheckBox控件后该行背景变色
  7. SpringMVC+Json构建基于Restful风格的应用
  8. 解决window8 下连接PLSQL 报ora-12154错误
  9. 从基础到分析,聊一聊企业报表平台的建设规划!
  10. C语言练习——百钱百鸡
  11. 网站嵌入虚拟试衣间方案问题
  12. 群晖python套件包_想在群晖上运行python该怎么弄?
  13. 台湾ICPlus IP175GHI, 85nm /极低功率,5接口10/100以太网集成交换机芯片
  14. 10019---mybatis的缓存机制(一级缓存二级缓存和刷新缓存)
  15. 原创 | GPT-4 震撼登场,惊艳四座,然而...
  16. css强制换行和超出隐藏实现(单行和多行)
  17. ABB机器人编程随记
  18. 2022-2028全球与中国绿色氢基微电网市场现状及未来发展趋势
  19. uniapp设置百度小程序索引页dynamicLib、usingComponents、swan-sitemap-list
  20. 波斯语计算机语言,语言「波斯语」10句及词汇

热门文章

  1. 【Unity3D自学记录】实现地球仪般拖拽旋转的效果
  2. Linux网络编程(TCP)
  3. python函数的传递方式有哪些_Python函数参数定义及传递方式解析
  4. Shell脚本创建用户
  5. CShell (REPL) :轻量级、可扩展(dll)、 支持C#语法 的接口算法验证工具
  6. java项目添加功能失败_学生信息的添加 Java web简单项目初试(失败)
  7. HP SmartArray P400, poor performance?
  8. gifshot.js合成GIF
  9. 多层陶瓷电容器用处_陶瓷电容器的分类和用途
  10. matlab带电阻性负载仿真,基于MATLAB的带整流负载同步发电机仿真研究