请查看这两个BAT文件。
nest0.bat
@echo off
echo nest0 start.
call nest1.bat
echo nest0 done.
nest1.bat
@echo off
if 1 = 1 (
echo In nest1
)
echo nest1 done.
运行nest0.bat,我们将看到以下输出:
nest0 start.
= was unexpected at this time.
这真糟糕。语法错误nest1.bat
导致nest0.bat
完全忽略其余的语句,整个批处理流立即停止。
我希望echo nest0 done
无论nest1.bat
成功还是失败都可以执行。有什么办法可以达到这个结果?
如果nest0.bat
可以继续执行,我可以使用if ERRORLEVEL 1 (...)
技术来检查nest0.bat
的执行结果。这将是一个非常体面的工作流程。
批次本身无法幸免于致命错误。
但是您可以在单独的cmd.exe进程中启动第二个批处理文件。
替换call nest1.bat
为cmd.exe /c nest1.bat
,仅此而已
nest0.bat
@echo off
echo nest0 start.
cmd /c nest1.bat
echo nest1 done.
if %errorlevel% == 0 (
echo nest1 was successfully
) else (
echo nest1 failed
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句