如何延迟批处理脚本

时间:2013-12-18 17:04:21

标签: windows batch-file

我已经浏览了每个论坛,并且建议的两个解决方案是使用Ping或使用超时。我正在使用超时,但ping有同样的问题。

我遇到的问题是,如果我在开始时使用timeout命令它可以正常工作,但如果我将两次调用之间的超时夹在中间,则完全忽略超时。

    CALL C:\Progra~1\Folder\Batchscript1.bat

    timeout /t 30 /nobreak

    CALL C:\Progra~1\Folder\Batchscript2.bat

这两个批处理脚本都在发送电子邮件。通过上面的设置,此批处理几乎立即完成(应该超时30秒)并成功发送两封电子邮件。

当我查看批处理中发生的情况时,我收到以下错误: “超时不被识别为内部或外部命令,可操作程序或批处理文件”。再次,这也没有意义,因为超时在下面的批次中工作得很好。

    timeout /t 30 /nobreak

    CALL C:\Progra~1\Folder\Batchscript2.bat

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

我认为您对Batchscript1.bat的调用必定存在一些对您调用timeout.exe有影响的事情。 尝试使用完全限定的路径扩展对timeout.exe的调用:

 "%windir%\system32\timeout.exe" /t 30 /nobreak

但是,请记住,您可能只治疗了一种症状。问题的原因可能仍会影响您的第二个脚本。

如果您不需要在batchscript2中使用batchscript1变量,则应考虑在batchscript1调用周围使用setlocalendlocal