• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >DOS/BAT > dos if 条件判断

dos if 条件判断

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了dos if,dos if else,dos if exist,dos if not exist,dos if goto等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1、判断驱动器、文件或文件夹是否存在,用 if exist 语句;
  2、判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句;
  3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;
  4、判断某个变量是否已经被赋值,用 if defined str 语句;

  if语句的完整格式是这样的:if 条件表达式 (语句1) else (语句2),它的含义是:如果条件表达式成立,那么,就执行语句1,否则,将执行语句2。

  对于以上四种情形,可以分别使用如下代码:

  1、if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)
  2、if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)
  3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
  4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)

  判断字符串是否相等的时候,if会区分大小写,比如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分大小写,则需要添加 /i 开关,使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符号是连续的"=="而非单独的"="。

  判断两个数值之间的大小关系,除了等于用equ之外,还有其他的关系符号,所有适用于if语句的关系符号见下表:

中文含义 关系符 英文解释

等于 equ equal
大于 gtr greater than
大于或等于 geq greater than or equal
小于 lss less than
小于或等于 leq less than or equal
不等于 neq no equal

  if语句还有一个精简格式:if 条件表达式 语句,它的含义是:如果条件表达式成立,将执行语句,否则,什么也不做。

学习if条件语句

学习要点:
5种if语句的基本语法:
1。判断两个字符串是否相等,if "字符串1"=="字符串2" command 语句;
2。判断两个数值是否相等,if 数值1 equ 数值2 command 语句;
3。判断判断驱动器,文件或文件夹是否存在,if exist filename command 语句;
4。判断变量是否已经定义,if defined 变量 command 语句;
5。判断上个命令的返回值,if errorlevel 数值 command 语句。
------------------------------------------------------------------------------------------------------


1。判断两个字符串是否相等,if"字符串1"=="字符串2" command 语句
   注意:在"字符串1"=="字符串2"中,是两个连续的"="

例1

@echo off
set /p var1=请输入第一个比较的字符:
set /p var2=请输入第二个比软的字符:
if "%var1%"=="%var2%" (echo 输入的两个字符相同) else echo 输入的两个字符不相同
pause
</div>

执行后会要求你输入两个字符串,然后批处理判断它俩是否相同。在判断字符串是否相等的时候,if是会区分大小写
的,请看,

例2

@echo off
if "a"=="A" (echo 输入的两个字符相同) else echo 输入的两个字符不相同
pause
</div>

执行后会显示:输入的两个字符不相同
如果我们不想让它区分大小写,则可以加上/i 参数。再看下面这个例子,

例3

@echo off
if /i "a"=="A" (echo 输入的两个字符相同) else echo 输入的两个字符不相同
pause
</div>

这次执行后会显示:输入的两个字符相同
------------------------------------------------------------------------------------------------------


2。判断两个数值是否相等,if 数值1 equ 数值2 command 语句
语句中的equ 表示相等的意思,判断两个数值之间的大小关系还有以下关系符号:

中文含义       关系符       英文解释
等于            equ          equal
大于            gtr          greater than
大于或等于      geq          greater than or equal
小于            lss           less than
小于或等于      leq          less than or equal
不等于          neq          no equal

我们还是来看个例子,

例4

@echo off 
set /p var=请输入一个数字: 
if %var% geq 10 (echo 此数大于或等于10) else echo 此数小于10
pause
</div>

注意哦,批处理中的大于号,小于号,等于号等等都不能用:“>”  “<”  “=” 这些符号,而要用像"gtr"这类
的。


☆注意:if 比较字符串与比较数字 之间的区别,它们的区别体现在引号""上面,请看下面的例子

【example 1】

@echo off
if "12" lss "4" (echo 12竟然小于4哦?) else echo 12当然不会小于4的!
pause
</div>

执行的结果是:12竟然小于4哦?


【example 2】

@echo off
if 12 lss 4 (echo 12竟然小于4哦?) else echo 12当然不会小于4的!
Pause
</div>

执行的结果是:12当然不会小于4的!

为什么【example 1】中加了双引号""会出错呢?

原因如下:
   如果要比较的两个元素加了双引号"",那么会被当成是字符的比较。两个元素作比较的流程是:先比较两个元素
的首位,如果首位相同,再比较第二位,如果第二位相同,再比较第三位。。。依此,在【example 1】if "12" lss
 "4" 语句中,实质是1与4的比较,1当然小于4,所以执行了后面的命令:echo 12竟然小于4哦?

☆建议:如果是字符串的比较就使用双引号"" 是数字的比较就不用双引号了!
------------------------------------------------------------------------------------------------------


3。判断判断驱动器,文件或文件夹是否存在,if exist filename command 语句
我们来瞧瞧这个判断驱动器,文件或者文件夹是否存在的语句,这里if exist filename 是表示:存在 filename的
意思。

例5

@echo off 
if exist "e:" (echo e盘存在) else echo e盘不存在 
pause>nul
</div>

这里是判断e: 是否存在!

例6

@echo off
if exist d:\123.bat (echo 123.bat文件存在!) else echo 123.bat文件不存在! 
pause
</div>

这个例子是用来判断123.bat文件是否存在的,但并不严谨!如果123.bat是一个文件夹而不是一个文件时,上面的判
断就不行了!那么如何判断指定的文件123.txt是否存在?请看:

@echo off
dir /a-d d:\123.bat >nul 2>nul
if %errorlevel%==0 (echo 123.bat文件存在!) else echo 123.bat文件不存在! 
Pause
</div>

先用dir的/a-d参数去除123.bat的目录属性,指定说明要搜索的123.bat是文件而不是文件夹,并把结果(包括正确
和错误)屏蔽(>nul 2>nul),如果dir找到了文件123.bat,那么其errorlevel值(dir命令的退出编码)会被设为0,否
则为1则是没有此文件。当然也可以用||和&&来判断。关于为什么要用if %errorlevel%==0 而不用if errorlevel 0
呢?在后面if errorlevel中会有说明!

例7

@echo off
if exist test\ (echo test 是文件夹) else echo test 是文件
pause
</div>

这里是判断文件夹是否存在。对于文件夹存在的判断,我们不可以用以下两种写法:

第①种

@echo off
if exist test\. (echo test 是文件夹) else echo test 是文件
pause
</div>


第②种

@echo off
if exist test\nul (echo test 是文件夹) else echo test 是文件
pause
</div>


4。判断变量是否已经定义,if defined 变量 command 语句
这是一个判断变量是否已被定义的语句,我们还是先看例子,

例8

您可能想查找下面的文章:

  • DOS批处理高级教程 第六章 if命令讲解
  • dos 流程跳转 goto
  • dos if 条件判断

相关文章

  • 批处理之家发现的用批处理实现的系统类应用代码
  • DOS批处理中%cd%与%~dp0的区别详解
  • cmd dir结构树显示代码(列出目录文件)
  • 批量安装windows补丁的批处理脚本
  • 文本左右对齐排版的批处理
  • cmd.exe 一些常见的启动参数介绍
  • 查看驱动器(盘符)的批处理
  • 批处理bat计算上个月最后一天的日期
  • 批处理获取IP生成TXT文本的bat代码
  • Wmic 实例应用代码分享

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 批处理加密.bat
    • 实现FTP整站上传的批处理代码
    • 实现FTP整站上传的批处理代码
    • 批处理的图形界面实现方法小结
    • 检查网络信息的bat[批处理]文件
    • win2000关机命令的批处理bat
    • windows7系统去除快捷方式小箭头BAT脚本分享
    • 使用批处理for命令清除事件查看器所有Windows EventLog日志
    • 用批处理实现auto.exe的免疫功能
    • NET LOCALGROUP命令详解(将用户添加到管理员组等)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有