我有一个python脚本,当我发现错误时,我抛出sys.exit(1)。这导致任务调度程序显示"(0x1)"上次运行结果下的评论。成功运行返回"操作成功完成。 (为0x0)&#34 ;.不幸的是,虽然这不会触发任务再次运行,即使在设置下我有"如果任务失败,重启每一个:"选中复选框。有关如何改善这一点的任何想法?
另一篇帖子有以下答案,但我找不到自定义过滤器的位置?在四个设置下;创建基本任务,记录事件时,操作,完成
你可以,
1激活Schedule的历史记录(如果尚未激活) 2关于历史"行动已完成"右键单击"此活动的附加任务......" 3像这样设置自定义过滤器:
* [系统[(EventID = 201)]]和* [EventData [数据[@Name =' ResultCode'] =' 1']]
答案 0 :(得分:1)
鉴于已启用任务计划程序的事件历史记录,您可以为应重新启动任务的每个退出代码添加触发器。使用自定义XML查询触发“在事件上”。触发器应该延迟至少30秒以限制重启任务的尝试。
这是一个示例查询。它查找事件ID 201(操作已完成),其任务名为“\ PyTest”(使用完整路径,从根“\”文件夹开始)和退出代码0xC000013A(即STATUS_CTRL_C_EXIT
,即控制台进程被Ctrl + Break杀死。
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">
*[System[EventID=201]] and
*[EventData[Data[@Name='TaskName']='\PyTest']] and
*[EventData[Data[@Name='ResultCode']='0xC000013A']]
</Select>
</Query>
</QueryList>