当前位置:DOS资源站资料中心批处理教程 → 批处理文件的errorlevel

批处理文件的errorlevel

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2008-5-18 21:40:24
最近在写脚本,什么.sql啊.sh啊.bat啊都写,快成脚本男了 -,-
在写的过程中遇到了一些困难,觉得有必要记一下。
比如批处理文件中的errorlevel用法:
一、IF-ERRORLEVEL
建立report.bat,内容如下:
@echo off
sqlplus %2/%3@%1 @report.sql
::errorlevel indicate whether sql script is processed successfully.
if errorlevel 4 echo REPORTING[ERR]: Error 4 occurs & goto exit
if errorlevel 3 echo REPORTING[ERR]: Error 3 occurs & goto exit
if errorlevel 2 echo REPORTING[ERR]: Error 2 occurs & goto exit
if errorlevel 1 echo REPORTING[ERR]: Error 1 occurs & goto exit
if errorlevel 0 echo REPORTING[INFO]: Reports have been generated successfully & goto exit
:exit
很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令
注意:if errorlevel 的比较方式是“大于或等于”。如果返回值大于或等于指定的数字,则条件成立,运行命令。所以返回值必须按照从大到小的顺序排列。
二、choice中的errorlevel
choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。
注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。
choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
   该命令允许用户从选择列表选择一个项目并返回所选项目的索引。
参数列表:
   /C    choices      指定要创建的选项列表。默认列表是 "YN"。
   /N     在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。
   /CS    允许选择分大小写的选项。在默认情况下,这个命令是不分大小写的。
   /T    timeout      做出默认选择之前,暂停的秒数。可接受的值是从0到9。如果指定了0,就不会有暂停,默认选项会得到选择。
   /D    choice      在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
   /M    text        指定提示之前要显示的消息。如果没有指定,命令只显示提示。
   /?              显示帮助消息。
   注意:
   ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,则会发出警告。如果检测到错误状态,它会返回 255 的ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列