我刚开始学习如何编写脚本.我试图了解系统如何处理错误级别以及如何在错误处理中使用它们.我知道环境变量%ERRORLEVEL%与系统的错误级别之间存在差异.如果我理解正确,那么
If ERRORLEVEL 1
代码将在检查上一个命令的错误级别之前检查环境变量.
所以,在我的程序中,我试图连接一个启动/停止脚本,它将启动/停止给定机器的所有脚本(用于测试我只是使用一个应用程序notepad.exe作为示例).我有两个包装脚本,可以通过将参数传递给独立脚本来启动或停止应用程序.如果独立脚本中存在错误,它将使用以下命令设置errorlevel
EXIT /B n
命令.一旦控制返回到调用脚本,如果退出状态为非零,它将转到错误处理脚本.
首先,我手动将%ERRORLEVEL%设置为零,然后在START或TASKKILL命令后测试错误.但后来我读到清除%ERRORLEVEL%
SET ERRORLEVEL=
是一个更好的方法.当我尝试启动应用程序时,我的问题就出现了
START "" notepad.exe
Run Code Online (Sandbox Code Playgroud)
每当我在此命令之后测试errorlevel时,它总是大于或等于1,除非我在运行start命令之前使用SET ERRORLEVEL = 0.我已经为下面的四个脚本插入了代码.任何见解和建议将不胜感激.
appstart.bat:
@echo off
:: Script for application Start
set ERRORLEVEL=
:: ****
:: Additional Batch files will be executed from within this file
:: Example:
:: Call Appbat01.bat
:: The called batch file should set ERRORLEVEL non-zero if error
:: ****
call test.bat -start
if ERRORLEVEL 1 (call error.bat)
echo.
echo Control was returned to appstart.bat...
:: **** End …Run Code Online (Sandbox Code Playgroud)