如何让Windows任务计划程序识别Python脚本非零退出码并显示错误?
Windows任务计划程序识别Python脚本非零退出码为失败的解决方案
问题概述
- Python脚本通过
exit(<非0值>)退出时,Windows任务计划程序的任务历史未标记为错误 - 尝试用
.bat文件包裹脚本并手动设置exit 123,但未达到预期效果 - 需求:让任务计划程序将脚本的非零返回码识别为任务失败,在历史窗口中显示错误状态
可行解决方案
方案1:直接配置任务计划程序运行Python脚本
无需通过bat中转,直接在任务计划程序里设置:
- 打开任务的操作选项卡,将程序/脚本设为Python可执行文件的完整路径(例如
C:\Python310\python.exe) - 在添加参数栏填入脚本的完整路径,注意加引号:
"D:\projects\your_failed_script.py" - 进入设置选项卡,确保勾选如果任务失败,重复尝试(可选),Windows任务计划程序默认会把非零退出码判定为任务失败,只要脚本正确返回非零值,历史中就会显示错误状态
方案2:修正bat脚本的退出码传递
如果必须用bat包裹,要确保bat正确传递Python脚本的退出码,而不是手动指定固定值:
@echo off REM 运行Python脚本 python "D:\projects\your_failed_script.py" REM 将Python的退出码传递给任务计划程序 exit /b %errorlevel%
%errorlevel%会自动捕获Python脚本的返回码,exit /b命令把这个码传递给上层的任务计划程序,这样任务就能识别到脚本的真实退出状态
验证效果
任务运行后,查看任务历史:
- 当脚本返回非零码时,任务历史会出现任务已完成,但出现错误的记录(对应你提供的“显示错误而非信息”的截图效果)
- 若任务仍未标记错误,检查Python脚本是否确实返回了非零码(可以在命令行手动运行脚本,用
echo %errorlevel%查看返回值)
内容的提问来源于stack exchange,提问作者michelson
相关产品推荐
相关产品推荐

