`
zzc1684
  • 浏览: 1221110 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

关于if errorlevel 命令

阅读更多

文章参考自:http://hi.baidu.com/lpf2008007/blog/item/a3fa9a3928bcd9f13a87ce8d.html

一,if errorlevel 
测试前一程序的返回状态,如果该程序的返回状态大与或等于所说明的值就执行所说明的DOS命令
if errorlevel 命令让批处理文件测试一程序的返回状态值,然后根据测试结果作相应的进一步处理,当
MS-DOS遇到一条 IF errorlevel 命令时,它就将前一条MS-DOS命令的返回状态值与在IF命令中所说的值想比较,如果该程序的返回状态大于或等于IF命令所说明的值MS-DOS就执行相应的命令,如果返回状态值小于所说明的值,MS-DOS就从批处理文件中的下一条命令继续执行,如果用的是IF NOT ERRORLEVEL命令,就正好相反
例子:
下面批处理文件执行FORMATION命令,并显示基于 FORMAT的返回值的完整状态信息:
@echo off
format a:
if errorlevel 5 goto no_response
if errorlevel 4 goto error
if errorlevel 3 goto user_ctrlc
echo successful format operation
goto done
no_response
echo fixed disk will not be formatted
goto done
:error
echo error in processing.format incopplete
goto done
:user_ctrlc
echo format incomplete to ctrl_c
:done
批处理文件首先测试最大的返回状态值。记住,如果返回状态值大于 或等于有IF命令所说明的值,MS-DOS就执行所说明的命令;如果该批处理文件首先测试返回状态值是否为3,那么MS-DOS会始终执行"goto user ctrlc",而不论返回状态值是3或4,或还是5。这是因为这些返回状态值都是大于或等于3的通过将测试次序倒过来,该批处理文件就能对各返回状态值分别执行正确的那组命令
   通过组合IF ERRORLEVEL和IF not ERRORLEVEL,可以测试一特定的返回状态值。例如,可以用下列命令测试返回状态值是否为3:
if errorlevel 3 if not errorlevel 4 goto user_ctrlc
注意:这时最好用 if %errorlevel%==3 goto user_ctrlc
二,IF NOT ERRORLEVEL
测试前一程序的返回状态,如果该程序的返回状态小于所说明的值就执行所说明的DOS命令
 
将not算符用于 IF ERRORLEVEL命令,批处理文件就能测试一返回值是否小于一具体值,如果是,MS-DOS就执行所说明的命令:否侧,它就从批处理文件中的 下一条命令处继续执行,IF not errorlevel 命令的 格式如下:
if not errorlevel 值 DOS命令
三, 对特定 ERRORLEVEL 值进行测试
   当一个批处理文件变的 较为复杂时,可能会需要将一条 IF ERRORLEVEL命令与一条 IF NOT ERRORLEVEL m命令后侧枝从 0 至4的返回状态值
@echo off
diskcopy a: b:
if errorlevel 0 if not errorlevel 1 echo exit 0
if errorlevel 1 if not errorlevel 2 echo exit 1
if errorlevel 2 if not errorlevel 3 echo exit 2
if errorlevel 3 if not errorlevel 4 echo exit 3
if errorlevel 4 if not errorlevel 5 echo exit 4
在第一条IF命令中。第一个测试(if errorlevel 0)保证返回状态值至少为0:第二个测试(IF NOT ERRORLEVEL 1)保证返回状态值小于1.将这两个测试组合起来。该命令就保证返回状态值为0,类试的,第二条IF命令返回状态值为1,等等。
注意:当需要对特定 ERRORLEVEL 值进行测试时,最好用if %errorlevel%==值 cmmand的形式。
关于%errorlevel%的更多内容请参照《errorlevel与%errorlevel%的区别
分享到:
评论

相关推荐

    if命令IF %ERRORLEVEL% LEQ 1 goto okay

    ### 关于 `if` 命令及其使用详解 #### 一、`if` 命令概述 在批处理脚本中,`if` 命令是一种非常重要的控制结构,它允许根据不同的条件来执行不同的命令。通过合理地使用 `if` 命令,可以在批处理文件中实现更为...

    批处理BAT脚本中set和if命令的使用

    * 判断上一条命令的退出代码:if命令可以用于判断上一条命令的退出代码,例如if %errorlevel% equ 0, 这将判断上一条命令的退出代码是否为0。 * 判断文件是否存在:if命令可以用于判断文件是否存在,例如if exist ...

    批处理基础 FOR命令详解 批处理中的变量 set命令详解 if命令讲解 DOS编程高级技巧

    * ERRORLEVEL:ERRORLEVEL命令用于获取上一条命令的执行结果。 * TITLE:TITLE命令用于设置批处理文件的标题。 * COLOR:COLOR命令用于设置批处理文件的背景颜色。 * mode 配置系统设备:mode命令用于配置系统设备。...

    批处理命令大全.docx

    6. IF 命令:用于条件判断,例如,IF ERRORLEVEL 1 COMMAND 就是判断命令的返回值是否为1,如果是,则执行COMMAND命令。 三、IF 命令详解 IF 命令用于条件判断,语法格式如下: IF [NOT] ERRORLEVEL number ...

    BAT命令大全

    3. choice 命令:choice 命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的 errorlevel,然后于 if errorlevel 配合,根据用户的选择运行不同的命令组。 通过掌握这些 BAT 命令大全,可以更好...

    cmd 远程文件分发拷贝命令

    IF ERRORLEVEL 2 ECHO Unable to connect via CTRL-C IF ERRORLEVEL 1 ECHO File not found IF ERRORLEVEL 0 ECHO Successful copy ``` - **ERRORLEVEL解释**: - `ERRORLEVEL`: 命令执行后的退出代码。 - 不同的...

    DOS命令 系统外部命令 内部命令

    IF [not] errorlevel 数字 命令语句 else 命令语句 IF [not] 字符串 1==字符串 2 命令语句 else 命令语句 IF [not] exist 文件名 命令语句 else 命令语句 ``` - **注意**:`else`必须与`if`在同一行才有效。 ### ...

    DOS批处理文件使用技巧

    通过使用`IF ERRORLEVEL`语句,可以根据命令执行的结果来进行不同的操作。 ```cmd IF ERRORLEVEL 52 GOTO C IF ERRORLEVEL 51 GOTO PRO IF ERRORLEVEL 50 GOTO BAS IF ERRORLEVEL 49 GOTO PAS IF ERRORLEVEL 48 GOTO...

    if.rar_If...

    3. **错误级别检查**:`if errorlevel n`检查上一个命令的错误级别是否大于等于n,`if not errorlevel n`则检查是否小于n。 ### 示例说明 以下是一些`if`命令的示例: ```batch @echo off set /a var1=5 set /a ...

    windows批处理命令详解及脚本实例.doc

    ERRORLEVEL 是命令执行后返回的加入值, Number 加入值的数字取值范围为 0~255。推断时值的陈列次序应当又年夜到小。前往的值年夜于或即是指定的值时前提成立。string1 跟 string2 都为字符的数据,英笔墨 符的巨细...

    BAT命令 接受键盘输入 根据用户的选择运行不同的命令

    接着,我们通过`if`语句检查`errorlevel`的值,以此判断用户的选择,并跳转到相应的标签执行不同的命令。 #### 3. `errorlevel`的使用 `errorlevel`是在批处理脚本中非常重要的一个变量,它用来存储上一条命令执行...

    bat批处理命令大全

    IF命令用于条件判断,例如:IF ERRORLEVEL 1 GOTO 1将判断命令执行完后的返回值,如果返回值为1则跳转到标号1处执行。 3. CALL命令的高级用法 CALL命令可以在批处理执行过程中调用另一个批处理文件,并返回结果,...

    DOS批处理高级教程 第六章 if命令讲解

    - 补充:`IF ERRORLEVEL 0`与`IF %ERRORLEVEL%==0`的区别在于前者只要`ERRORLEVEL`大于或等于0就会执行后面的命令,而后者则只在`ERRORLEVEL`正好为0时才执行。 2. **基于字符串比较**: ```bat IF[NOT] string1...

    windows批处理命令详解及脚本实例.pdf

    1. IF语句:IF语句是一种条件判断语句,用于根据条件执行不同的命令。其语法格式如下: IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command 例:IF ...

    dos批处理命令详解

    ### DOS批处理命令详解 #### 一、Echo 命令 **功能**: Echo 命令用于在...以上是关于 DOS 批处理命令的基本介绍与示例,这些命令对于编写批处理脚本非常有用。通过这些命令,可以实现自动化任务的执行,提高工作效率。

    DOS批处理教程精选简单易懂.pdf

    2. ERRORLEVEL命令:用于获取命令的返回值,格式为IF ERRORLEVEL [number] [command],例如IF ERRORLEVEL 1 GOTO 1。 3. EXIST命令:用于判断文件或目录是否存在,格式为IF EXIST [filename] [command],例如IF ...

    Windows批处理命令大全

    - **功能描述:** `if` 命令用于判断条件是否满足,从而决定执行不同的命令序列。 - **示例:** ```bat if "%1"=="a" format a: if exist config.sys edit config.sys if errorlevel 2 goto x2 ``` #### 10. ...

    常用的一些批处理命令

    if errorlevel 3 goto optionC if errorlevel 2 goto optionB if errorlevel 1 goto optionA ``` 用户将看到"A, B, C"的提示,输入对应的字符后,通过`errorlevel`判断用户的选择。 以上是批处理中常见的命令...

Global site tag (gtag.js) - Google Analytics