批处理脚本中的错误处理
作者:迹忆客
最近更新:2023/08/14
浏览次数:
每个脚本和编程语言都包含错误处理程序,例如 Java 包含用于错误处理的 try-catch。 在批处理脚本中,没有直接的方法来执行此操作,但我们可以使用批处理脚本名称 %ERRORLEVEL% 的内置变量在批处理脚本中创建错误处理程序。
本文将展示如何创建批处理脚本来处理错误和失败。 此外,我们还将提供一些使该主题变得更容易的示例。
批处理脚本中的错误处理
当命令成功执行时,它总是返回一个 EXIT CODE,指示命令是成功执行还是执行失败。 因此,要在批处理文件中创建错误处理,我们可以在程序中使用该退出代码。
您可以按照以下通用格式创建错误处理程序:
@Echo off
SomeCommand && (
ECHO Message for Success
) || (
ECHO Message for Failure or Error
)
我们还可以通过检查名为 %ERRORLEVEL%
的变量来做到这一点。 如果变量包含不等于 0 的值,则执行命令时可能会出现问题或错误。 要测试 %ERRORLEVEL% 变量,您可以按照以下示例代码进行操作:
@ECHO off
Some Command Here !!!
IF %ERRORLEVEL% NEQ 0 (Echo Error found when running the command &Exit /b 1)
您必须注意,关键字 NEQ 表示不等于。 如果代码中存在问题或错误,变量 %ERRORLEVEL% 将仅包含非零值。
包含错误的示例
下面,我们分享了一个例子。 我们将从某个位置运行名为 Your_file.bat 的批处理文件。
我们故意从目录中删除了该文件。 所以这是一个错误命令。
我们示例的代码为:
@echo off
ECHO Running a Batch file
CD G:\BATCH\
CALL Your_file.bat
IF errorlevel 1 GOTO ERROR
ECHO The file run successfully.
GOTO EOF
:ERROR
ECHO The file didn't run successfully.
CMD /k
EXIT /b 1
:EOF
现在,由于目录中不存在该文件,它将显示错误,当您运行上面共享的代码时,您将得到以下输出。
输出:
Running a Batch file
The system cannot find the path specified.
'Your_file.bat' is not recognized as an internal or external command,
operable program or batch file.
The file didn't run successfully.
成功运行的无错误代码示例
在上面的例子中,我们故意在代码上犯了一个错误,以了解代码是如何工作的。 如果我们像下面这样更正它:
@echo off
ECHO Running a Batch file
CALL "G:\BATCH\Yourfile.bat"
IF errorlevel 1 GOTO ERROR
ECHO The file runs successfully.
GOTO EOF
:ERROR
ECHO The file didn't run successfully.
CMD /k
EXIT /b 1
:EOF
然后我们会得到这样的输出:
Running a Batch file
This is from the first file
The file runs successfully.
请记住,我们在这里讨论的所有命令仅适用于 Windows 命令提示符或 CMD 环境。