批处理if(bat批处理 if 命令示例详解)
大家好,今天来为大家分享批处理if的一些知识点,和bat批处理 if 命令示例详解的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
批处理中if的用法
If在批处理程序中执行条件处理。
语法
if [not] errorlevel number command [else expression]
if [not] string1==string2 command [else expression]
if [not] exist filename command [else expression]
如果启用了命令扩展,请使用以下语法:
if [/i] string1 compareop string2 command [else expression]
if cmdextversion number command [else expression]
if defined variable command [else expression]
参数
not
指定只有当条件为假时才执行该命令。
errorlevel number
只有当由 Cmd.exe运行的前一个程序返回大于或等于 number的退出代码时,才能指定真条件。
command
指定只有满足前面的条件时才应执行的命令。
string1==string2
只有当 string1和 string2相同时才能指定真条件。这些值可以是文字字符串或批处理变量(例如,%1)。对于文字字符串,不需要使用问号。
exist filename
如果 filename存在,则指定真条件。
CompareOp
指定 3个字母的比较运算符。下表列出了 compareop的有效值。运算符说明
EQU等于
NEQ不等于
LSS少于
LEQ少于或等于
GTR大于
GEQ大于或等于
/i
强制字符串比较忽略大小写。可以在 if的 string1==string2形式上使用/i。这些比较是通用的,如果 string1和 string2都由所有的数字组成,那么字符串将被转换为数字并且将执行数字比较。
cmdextversion number
只有当与 Cmd.exe的“命令扩展”功能相关的内部版本号等于或大于 number时,才指定真条件。第一个版本是 1。当命令扩展的功能有重大增强时,则在此号码上加 1。当禁用了命令扩展时(默认情况下为启用),cmdextversion条件不为真。
defined variable
如果定义了 variable,则指定条件为真。
expression
指定将传递给 else子句中命令的命令行命令和任何参数。
/?
在命令提示符显示帮助。
bat批处理 if 命令示例详解
if命令示例详解 if正如它E文中的意思就是如果的意思用来进行条件判断翻译过来的意思就是如果符合某一条件便执行后面的命令主要用来判断两个字符串是否相等两个数值是大于小于等于然后执行相应的命令当然还有特殊用法如结合errorlevel iferrorlevel echoerror或者结合defined(定义的意思):ifdefinedtest(echoItisdefined)elseechoItisn tdefined用法示例检测字符串(注意用if检测字符串是否相等的时候后面用的不是=而是==)
复制代码代码如下:
@echooff set str=thisisatest REM检测变量%str%是否等于test如果相等显示OK否则显示NO if%str%== test(echoOK)elseechoNO pause>nul
检测数值(注意批处理中大于符号不能用>而用 gtr其它的也类似)比较运算符一览 EQU等于 NEQ不等于 LSS小于 LEQ小于或等于 GTR大于 GEQ大于或等于检测数值是否大于演示代码复制代码代码如下:
@echooff set/anum= set/anum= if%num%gtr%num%echo%num%大于%num% if%num%EQU%num%echo%num%等于%num% if%num%LSS%num%echo%num%小于%num% pause>nul
if结合errorlevel使用说明环境变量errorlevel的初始值为当一些命令执行不成功就会返回一个数值如等 IF ERRORLEVEL测试代码复制代码代码如下:
@ECHOOFF XCOPYF:\test batD:\ IFERRORLEVEL ECHO文件拷贝失败 IFERRORLEVEL ECHO成功拷贝文件
如果文件拷贝成功屏幕就会显示成功拷贝文件否则就会显示文件拷贝失败 IFERRORLEVEL是用来测试它的上一个DOS命令的返回值的注意只是上一个命令的返回值而且返回值必须依照从大到小次序顺序判断因此下面的批处理文件是错误的@ECHOOFF XCOPYC:\AUTOEXEC BATD:\ IFERRORLEVEL ECHO成功拷贝文件 IFERRORLEVEL ECHO未找到拷贝文件 IFERRORLEVEL ECHO用户通过ctrl c中止拷贝操作 IFERRORLEVEL ECHO预置错误阻止文件拷贝操作 IFERRORLEVEL ECHO拷贝过程中写盘错误无论拷贝是否成功后面的未找到拷贝文件用户通过ctrl c中止拷贝操作预置错误阻止文件拷贝操作拷贝过程中写盘错误都将显示出来复制代码代码如下:
附录以下就是几个常用命令的返回值及其代表的意义 backup备份成功未找到备份文件文件共享冲突阻止备份完成用户用ctrl c中止备份由于致命的错误使备份操作中止 diskp盘比较相同盘比较不同用户通过ctrl c中止比较操作由于致命的错误使比较操作中止预置错误中止比较 diskcopy盘拷贝操作成功非致命盘读/写错用户通过ctrl c结束拷贝操作因致命的处理错误使盘拷贝中止预置错误阻止拷贝操作 format格式化成功用户通过ctrl c中止格式化处理因致命的处理错误使格式化中止在提示 proceedwithformat(y/n)?下用户键入n结束 xcopy成功拷贝文件未找到拷贝文件用户通过ctrl c中止拷贝操作预置错误阻止文件拷贝操作拷贝过程中写盘错误
if还有一个特殊的用法就是可以用来检测某个变量是否已经被定义用法示例复制代码代码如下:
待续 lishixinzhi/Article/program/qrs/201405/31032批处理 if 不能直接执行多条命令吗
if和else必须处于同一行
要想多行执行可以用标号配合goto语句完成
if exist ddd(goto a)else(goto b)
:a
::这是注释,这个位置可以放正常语句,上一行是注释语句(单独一个冒号是标号的开头;连续2个冒号是注释)
goto end
:b
::这是注释,这个位置可以放正常语句,上一行是注释语句(单独一个冒号是标号的开头;连续2个冒号是注释)
:end
【注意】需要特别注意的地方就是if else,需要放在同一行,每一个关键字使用空格隔开,如:goto、else
格式:
if条件1( goto A) else( if语句2( goto B) else( goto C))
批处理 if exist 判断两个文件
1、批处理:if作为判断真假的 if只有两种可能,真和假,真就执行,假就不执行,下面的%1是要输入的参数.pause是暂停not是将真假颠倒(真的变成假的,假的变成真的)echo是打印字符串。
2、快捷键win+ R打开资源管理器输入:cmd点击:确定在 cmd里面输入test.bat a将a作为参数传递给%1。
3、如下图。
4、if exist是用来判断文件或目录是否存在,如果文件存在为真,如果文件不存在为假,if exist和 if的区别在于。
5、if用来判断条件的真假,而if exist用来判断文件的真假。
文章分享到这里,希望我们关于批处理if和bat批处理 if 命令示例详解的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。