如果未完成,则自动执行批处理和错误报告的任务

时间:2013-09-02 10:16:32

标签: batch-file windows-services scheduled-tasks windows-server-2003 windows-server

我有很多批处理脚本,我们目前在本地计算机上手动运行。我打算将这些脚本移到我们的Windows 2003服务器上,并使用调度程序设置一个自动任务,每4小时运行一次。

我没有设置此问题,但我们此刻手动执行此操作的唯一原因是以防批次未完成。

有没有办法让调度程序检查批处理是否已经完成运行以及是否还没有运行另一个事件?

我想它可能需要某种时间范围,比如它是否在1小时内没有完成报告问题,因为有时脚本可能需要很长时间。

对于更好的解决方案或任何可行的解决方案的任何建议都非常感谢。

谢谢, 西蒙

编辑:

添加了与批处理相关的标记,因为我通过批处理文件执行此操作,另一个选项可能是在我的scipts中添加一些代码来检查运行时并报告错误,如果它运行了2个小时则终止。

但我不知道如何实现这一点,会做一个谷歌,但如果有人知道这种方式可能是另一种选择。我知道我必须先发布一些我先尝试过的代码,然后才能提出“我可以使用什么脚本”的问题,所以我会先尝试一下。

1 个答案:

答案 0 :(得分:0)

看看“期待”语言。 http://sourceforge.net/projects/expect/ 这是对tcl / tk的扩展,提供了许多可以完美地用于运行自动化测试或控制(远程)脚本和应用程序的东西。

你做的事情:

编写一个脚本,您可以在其中执行某些操作,例如启动应用程序或shell或运行批处理。然后你有一个循环,它有一对预期的输入和动作,如果捕获了这些输入,应该这样做。还有一个超时条款!

期望自己在我所知道的所有平台上运行,脚本可以移植到所有操作系统。

我们使用它来运行telnet会话,运行应用程序和批处理,并通过串行/ usb /网络链接监控DUT的反应。它非常灵活且易于使用。我们还使用expect作为许多基于gtest的单元测试的主脚本。