windows批处理中if语句的用法详解

2024-03-04 0 250
目录
  • if
  • 扩展命令
  • else

if

if是宇宙通用的条件选择语句标识,在批处理指令中也不例外。但和其他语言不同之处在于,批处理中的if有一个not开关,即if XXX表示xxx为真时执行后续语句,if not XXX表示XXX为假时执行后续语句。

从判断内容的角度来说,if提供了三种类型的判断,分别是数字、字符串和文件路径,下面做一个批处理文件,统一演示一下

:: iftest.bat
@echo off
dir test.txt
if errorlevel 1 (echo error)
if a==a (echo a==a)
if exist iftest.bat (echo iftest.bat exist)

结果如下

>iftest.bat。。。找不到文件errora==aiftest.bat exist

首先,if errorlevel 1,表示如果上一条命令的错误码大于1,那么就执行后续代码。上一条代码是dir test.txt,这个文件是不存在的,所以执行结果是找不到文件,同时系统错误码也变成了1。在这种情况下,if errorlevel 1判定为真,执行后面的echo error语句。

第二条没什么好说的,判断两个字符串是否相等,很显然相等。

第三条其实也没什么好说的,判断iftest.bat是否存在,我们创建的这个脚本就是iftest.bat,这个文件显然是存在的。

分析这三条代码可以发现,if后面紧跟着要执行的命令,是用小括号括起来的,这一点和许多编程语言不同。如果执行的语句只有一行,那么这个括号可以省略,否则就必须带上,而且括号(和条件之间必须有空格。

有一些奇葩的dos指令,需要在换行时才能生效,比如del,这种情况下代码必须换行。

扩展命令

上面这三种基础指令,其实很弱小,甚至无法比较两个数字。所以windows分别为其提供了扩展功能,对应指令如下:

原生扩展说明if errorlevel xxxif cmdextversion xxx判断系统错误码if a==bif a op b字符串或者数值比较,op包含多种运算符if exist xxxif defined xxx扩展指令还可以检查变量是否存在

其中,op的可用运算符包括

op说明op说明EQU等于NEQ不等于LSS小于LEQ小于或等于GTR大于GEQ大于或等于

如果是两个数字比较,那么就直接比较大小;如果是字符串,那么就根据ASCII的位置进行比较。并且此时还有一个忽略大小写开关/i,选中之后,在比较字符时将忽略大小写。

:: ifadvanced.bat
@echo off
dir test.txt
if cmdextversion 1 (echo error)
if 3 LSS 4 (echo \”3<4\”)
set a=5
if defined a (echo a=%a%)

运行结果如下

>ifadvanced.bat找不到文件error"3<4"a=5

else

批处理中的else,或者else if有很多说道,比如必须和上一个if同行,如果if中的命令是多行的,那么就必须和if的尾括号同行,否则就不会被执行。

:: ifelse.bat
@echo off
if %1==1 (
goto :a
)else if %1==2 (
goto :b
)else (
goto :c
)
:a
echo you inputted 1
goto :eof
:b
echo you inputted 2
goto :eof
:c
echo you didn\’t input 1 or 2
goto :eof

运行结果如下

>iftest 1you inputted 1>iftest 2you inputted 2>iftest 5you didn't input 1 or 2

到此这篇关于windows批处理中if语句的用法详解的文章就介绍到这了,更多相关批处理if语句内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • bat批处理 if 命令示例详解
  • bat If 命令常用判断介绍
  • DOS批处理高级教程 第六章 if命令讲解
  • 批处理命令教学之if语句
  • 批处理中常用命令介绍(Echo、rem、goto、call、pause、if、for)
  • BAT脚本之核心技巧:详解IF语句的使用方法与实例

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 DOS/BAT windows批处理中if语句的用法详解 https://www.u-9.cn/jiaoben/dosbat/183080.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务