我已经浏览了每个论坛,并且建议的两个解决方案是使用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
任何帮助将不胜感激
答案 0 :(得分:2)
我认为您对Batchscript1.bat的调用必定存在一些对您调用timeout.exe有影响的事情。 尝试使用完全限定的路径扩展对timeout.exe的调用:
"%windir%\system32\timeout.exe" /t 30 /nobreak
但是,请记住,您可能只治疗了一种症状。问题的原因可能仍会影响您的第二个脚本。
如果您不需要在batchscript2中使用batchscript1变量,则应考虑在batchscript1调用周围使用setlocal
和endlocal
。