You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理(.bat)执行多个Python脚本仅首个运行的错误处理问题求助

批处理文件问题排查与修复方案

核心问题原因

  • 所有跳转标签都使用了相同的:Next命名:Windows批处理中,同名标签只会匹配整个脚本里第一次出现的:Next位置,导致执行完第一个Python文件后跳转逻辑完全混乱,无法按顺序执行后续脚本。
  • 重复写多份错误处理逻辑不仅冗余,也大幅提升了代码出错概率。

修复后的脚本代码

@echo off
:: 预定义通用路径变量,避免重复编写
set "WORK_DIR=C:\EarthSQL-Testing"
set "LOG_DIR=C:\Users\EarthSQL\EarthSQL\Documents - Documents\ErrorLog"

:: 按顺序执行Python脚本,异常直接跳转到统一错误处理
python "%WORK_DIR%\mckayplod.py" "%WORK_DIR%"
if %ERRORLEVEL% NEQ 0 goto HandleError

python "%WORK_DIR%\mckaypersonnel.py" "%WORK_DIR%"
if %ERRORLEVEL% NEQ 0 goto HandleError

python "%WORK_DIR%\mckaydrilling.py" "%WORK_DIR%"
if %ERRORLEVEL% NEQ 0 goto HandleError

python "%WORK_DIR%\mckactivities.py" "%WORK_DIR%"
if %ERRORLEVEL% NEQ 0 goto HandleError

:: 全部执行成功的收尾逻辑
echo 所有Python脚本执行完毕,无异常
pause
exit /b 0

:: 统一错误处理逻辑
:HandleError
echo PYTHON ERROR HAS FOUND > "%WORK_DIR%\Error.txt"
copy "%WORK_DIR%\Error.txt" "%LOG_DIR%\" /y
pause
exit /b %ERRORLEVEL%

额外注意事项

  • 确保你的Python脚本出现异常时会返回非0退出码:在Python代码中捕获异常后调用import sys; sys.exit(1)即可,脚本无异常运行完成默认返回0,符合判断逻辑。
  • 如果设备上安装了多个Python版本,建议将python替换为Python解释器的完整绝对路径,避免环境变量匹配错误。

内容的提问来源于stack exchange,提问作者xyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:45:02