如何获取批处理脚本的任务计划程序上次运行结果退出代码?
我需要知道任务是否成功运行,以便我可以在应用程序日志中创建一个事件来说明这一点。有没有办法在代码中得到这个?我尝试了以下操作:
echo ErrorLevel of "c:\windows\system32\tasks\my task" = %ErrorLevel%
但每次都得到 0,即使我提前停止它(0x41306)或任务仍在运行时(应该是 0x41301)。有人有什么想法吗?谢谢。
我找到了解决这个问题的方法。我没有获取任务的退出代码,而是获取了实际运行的批处理脚本的退出代码,如果它不是 0,那么我将创建一个错误应用程序事件,否则它是一个成功的应用程序事件。
I need to know if the task ran successfully so I can create an event in the Application log saying so. Is there a way to get this in code? I tried the following:
echo ErrorLevel of "c:\windows\system32\tasks\my task" = %ErrorLevel%
But I get 0 every time, even if I stop it prematurely (0x41306) or while the task is still running (should be 0x41301). Does anyone have any ideas? Thank you.
I found a workaround to this. Instead of getting the exit code of the task, I got the exit code of the batch script that actually runs and if it's anything but 0 then I make an error application event, otherwise it's a success application event.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下批处理文件接受任务名称参数,例如,如果您将bat文件命名为“getresult.bat”,则将调用“getresult GoogleUpdateTaskMachineCore”(如果名称有空格,请在其两侧加上引号)。
这非常冗长,所以如果您需要帮助调整它以满足您的需求,请告诉我。
在 Windows 8 中测试并工作,我相信它也应该适用于 XP/Vista/7。
The following batch file accepts a parameter of a task name, for instance if you named the bat file "getresult.bat" you would call "getresult GoogleUpdateTaskMachineCore" (If the name has spaces, put quotes around it).
This is very verbose, so let me know if you need help adapting it to fit your needs.
Tested and working in Windows 8, I believe it should work for XP/Vista/7 as well.