如何在 python 脚本失败后触发 Windows 任务计划重启

How to Trigger Windows Task Schedule restart after fails with python script

我有一个 python 脚本,当我发现错误时,我会抛出 sys.exit(1)。这会导致任务计划程序在最后 运行 结果下显示“(0x1)”注释。一个成功的运行returns"The operation completed successfully. (0x0)"。不幸的是,即使在设置下我选中了 "if task fails, restart every:" 复选框,这也不会再次触发任务 运行 。关于如何改进这一点的任何想法?

另一个 post 有以下答案,但我找不到放置自定义过滤器的位置?在四种设置下;创建基本任务,当记录事件时,操作,完成

可以,

1 激活时间表的历史记录(如果尚未激活) 2 在历史 "Action completed" 上单击鼠标右键 "Attached Task to This Event..." 3 像这样设置自定义过滤器:

*[System[(EventID=201)]] 和 *[EventData[Data[@Name='ResultCode']='1']]

鉴于启用了任务计划程序的事件历史记录,您可以为每个应重新启动任务的退出代码添加触发器。使用自定义 XML 查询触发 "on an event"。触发器应该至少延迟 30 秒以限制重新启动任务的尝试。

这是一个示例查询。它使用名为“\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>