批处理 - 返回码

批处理 - 返回码 首页 / 批处理入门教程 / 批处理 - 返回码

默认情况下,当命令行执行完成时,它应该在执行成功时返回零,或者在执行失败时返回非零,当批处理脚本执行失败后返回非零值时,该非零值将指示错误号,然后,无涯教程将使用错误号来确定错误的根源并相应地解决。

以下是常见的退出代码及其说明。

错误代码说明
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"将显示在命令提示符下。

Loops循环

在决策一章中,无涯教程看到了依次执行的语句。此外,也可以在批处理脚本中完成实现,以更改程序逻辑中的控制流。然后将它们分类为控制语句流。

无涯教程网

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语句通常用于循环结构中,并用于立即终止最内层的循环。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

React实战进阶45讲 -〔王沛〕

数据分析实战45讲 -〔陈旸〕

苏杰的产品创新课 -〔苏杰〕

视觉笔记入门课 -〔高伟〕

Kubernetes入门实战课 -〔罗剑锋〕

快手 · 音视频技术入门课 -〔刘歧〕

超级访谈:对话玉伯 -〔玉伯〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

Midjourney入门实践课 -〔Jovi〕

好记忆不如烂笔头。留下您的足迹吧 :)