默认情况下,当命令行执行完成时,它应该在执行成功时返回零,或者在执行失败时返回非零,当批处理脚本执行失败后返回非零值时,该非零值将指示错误号,然后,无涯教程将使用错误号来确定错误的根源并相应地解决。
以下是常见的退出代码及其说明。
错误代码 | 说明 |
---|---|
0 | 程序成功完成。 |
1 | 功能不正确。表示"操作"已尝试在Windows命令提示符cmd.exe中执行无法识别的命令。 |
2 | 系统找不到指定的文件。 |
3 | 系统找不到指定的路径。表 |
5 | 访问被拒绝,表示用户无权访问指定资源。 |
9009 0x2331 | 程序未被识别为内部或外部命令,可操作程序或批处理文件。 |
221225495 0xC0000017 -1073741801 | 没有足够的虚拟内存。 这表明Windows内存不足。 |
3221225786 0xC000013A -1073741510 | 应用程序由于CTRL + C而终止,指示该应用程序已由用户的键盘输入CTRL + C或CTRL + Break或关闭命令提示符窗口终止。 |
3221225794 0xC0000142 -1073741502 | 应用程序无法正确初始化,表示该应用程序已在当前用户没有访问权限的桌面上启动,另一个可能的原因是gdi32.dll或user32.dll未能初始化。 |
环境变量%ERRORLEVEL%包含最后执行的程序或脚本的返回码。
默认情况下,检查错误级别的方法是通过以下代码。
IF %ERRORLEVEL% NEQ 0 ( DO_Something )
通常在批处理文件的末尾使用命令EXIT/B%ERRORLEVEL%从批处理文件返回错误代码。
批处理文件末尾的EXIT/B将停止执行批处理文件。
假设有一个名为Find.cmd的批处理文件,其中包含以下代码,在代码中,清楚地提到,如果找不到名为lists.txt的文件,则应将错误级别设置为7。类似地,如果看到未定义变量userprofile,则应将错误级别代码设置为9。
if not exist c:\lists.txt exit 7 if not defined userprofile exit 9 exit 0
假设还有另一个名为App.cmd的文件,该文件首先调用Find.cmd。现在,如果Find.cmd返回的错误将错误级别设置为大于0,则它将退出程序。在下面的批处理文件中,调用Find.cnd查找之后,它实际上检查错误级别是否大于0。
Call Find.cmd if errorlevel gtr 0 exit echo “Successful completion”
在上面的程序中,可以将以下场景作为输出-
如果文件c:\lists.txt不存在,那么控制台输出中将不会显示任何内容。
如果变量userprofile不存在,那么控制台输出中将不显示任何内容。
如果以上两个条件均通过,则字符串"Successful completion"将显示在命令提示符下。
在决策一章中,无涯教程看到了依次执行的语句。此外,也可以在批处理脚本中完成实现,以更改程序逻辑中的控制流。然后将它们分类为控制语句流。
S.No | 描述 |
---|---|
1 |
While Statement Implementation 批处理脚本中没有直接的while语句,但是可以使用if语句和标签很容易地实现此循环。 链接:https://www.learnfk.comhttps://www.learnfk.com/batch-script/batch-script-return-code.html 来源:LearnFk无涯教程网 |
2 |
For Statement - List Implementations " FOR"构造为批处理文件提供循环功能。 |
3 |
Looping through Ranges " for"语句还可以在一系列值之间移动。 |
4 |
Classic for Loop Implementation 以下是大多数编程语言中可用的经典" for"语句。 |
" for"语句也可用于检查命令行参数,以下示例说明了如何使用" for"语句循环遍历命令行参数。
@ECHO OFF :Loop IF "%1"=="" GOTO completed FOR %%F IN (%1) DO echo %%F SHIFT GOTO Loop :completed
假设上面的代码存储在一个名为Test.bat的文件中。如果批处理文件将命令行参数1,2和3作为Test.bat 1 2 3传递,则上述命令将产生以下输出。
1 2 3
S.No | 描述 |
---|---|
1 |
Break Statement Implementation break语句用于更改任何编程语言中循环内部的控制流。 break语句通常用于循环结构中,并用于立即终止最内层的循环。 |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕