我在 Windows 任务计划程序中安排了一些任务。我安装了一个名为 Bmail 的第三方工具,它添加了一个从任务调度程序独立发送电子邮件的任务。它可以在给定的时间触发。有谁知道如何进行设置,以便 Bmail 任务在运行原始任务时发送电子邮件?如何在任务计划程序中链接两个不同的任务并让一个触发另一个?
2 回答
对不起,如果这被认为是旧线程的复活。但我想自己回答这个问题,所以我先来这里。
你可以让它们菊花链。在第一个任务之后,安排第二个任务在第一个任务完成时创建的事件上触发。这里解释得有点乱,https://blogs.msdn.microsoft.com/davethompson/2011/10/25/running-a-scheduled-task-after-another/
通过添加此触发器并触发 Ping 事件,Ping 任务会在 Ping 完成后立即触发。现在是一个重用此 XPath 的简单案例,将这里的任务名称 \Ping 替换为要运行的任务:
*[EventData[@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\Ping']]
如果你想要更多的控制权,你可以像上面链接的博客中的评论员之一那样做。
我进一步添加了条件“仅当前一个任务以退出代码 0 完成时才执行任务”。
为了做到这一点,“动作完成”事件比“任务完成”事件要好。这个“动作完成”事件的事件数据元素包含一个名为“ResultCode”的子元素,这正是我们正在寻找的!
所以 xPath 是: *[EventData[@Name='ActionSuccess'][Data[@Name='TaskName']='Ping'][Data[@Name='ResultCode']='0']]
当我自己工作时,我会更多地更新这篇文章。
您可以编写一个脚本来模拟 Bmail 任务正在做什么(例如运行 exe 等),然后更改 Bmail 任务以运行您刚刚编写的那个脚本。
从那里更改原始任务以调用相同的脚本,这样,如果 Bmail 更改了它们的运行方式,您可以更新这两个任务,而只需更改脚本。