强制bat文件无限循环

时间:2015-01-30 17:32:28

标签: batch-file

我在使用blat发送电子邮件的bat文件中有以下无限循环。

:sendmail
sleep 5
blat my.log -subject "Test Mail" -server company.server.com -tf names.lst 
if errorlevel 1 goto sendmail

我有它循环,因为有时邮件服务器很忙,并且在第二次收到请求时不会发送我的电子邮件,但它会在几秒钟之后发送。因此,如果服务器繁忙,这件事只会每5秒循环一次。但是如果服务器整天停机,我想在30分钟后打破无限循环。有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

创建一个变量来跟踪您等待的秒数。每次循环,检查您是否等待1,800秒(30分钟)或更长时间。如果你有,那就打破循环。

以下代码未经测试。

SET SecondsWaited=0
:sendmail
IF %SecondsWaited% GEQ 1800 GOTO EMAILFAIL
SET /A SecondsWaited+=5
sleep 5
blat my.log -subject "Test Mail" -server company.server.com -tf names.lst 
if errorlevel 1 goto sendmail

:EMAILFAIL