我正在使用Windows 7,我有一个应用程序,成功时返回零(0x0),错误情况下返回一个(0x1).
我已使用Windows任务计划程序安排此应用程序.我检查了选项框"如果任务失败,请重新启动每个"和"尝试重新启动到:".
我认为来自应用程序的非零返回代码足以触发在给定间隔后重新启动的任务.但没有任何反应.
任何想法可能是什么问题?我试图谷歌它但没有找到任何相关的东西.
dnk*_*tro 11
创建一个新任务并设置自定义事件查询,如下所示:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[EventID=201]] and *[EventData[Data[@Name='ResultCode']!='0']] and *[EventData[Data[@Name='TaskName']='\YOUR TASK NAME HERE']]</Select>
</Query>
</QueryList>
Run Code Online (Sandbox Code Playgroud)
将触发器高级设置设置为将任务延迟一段时间,例如15分钟.
配置新任务的操作以启动程序:
程序/脚本:
schtasks
Run Code Online (Sandbox Code Playgroud)
添加参数:
/Run /TN "\YOUR TASK NAME HERE"
Run Code Online (Sandbox Code Playgroud)
这将调度原始任务在事件中记录非零结果代码15分钟后再次运行.
小智 6
我在Windows 2008服务器Windows任务计划程序上遇到了同样的问题. 该操作返回非零代码,但调度程序认为任务已完成:
Task Scheduler successfully completed task "\SET Tasks\Scheduled task [Backup SET Server]" , instance "{...}" , action "C:\Windows\SYSTEM32\cmd.exe" with return code 1.
Run Code Online (Sandbox Code Playgroud)
我在网上发现只有一个答案:
任务完成时,Windows任务计划程序不会 检查 退出代码或任何其他值.您必须处理自己的脚本或程序中的任何错误处理.
...在本文档中:www.onlinetoolworks.com/docs/winTaskSched.doc
所以我认为现在解决这个问题的唯一方法可能就是在事件上使用任务触发.我正在调查.
问候,
奥利维尔.