带定时器的批量循环

时间:2011-06-23 23:13:39

标签: batch-file batch-processing

嗨,我是批处理的新手,我遇到了一个问题。我要做的是写一个批处理文件,它会反复运行命令test.exe 24小时。一旦24小时计时器到期,程序将退出。

我不熟悉批次,并想知道如何做到这一点。

3 个答案:

答案 0 :(得分:3)

请尝试以下代码。使用ping作为计时器并使用查找开关将其隐藏在后台 您可以通过使用ping命令修改计时器,并使用%n%变量退出播放 此代码大约每30分钟重新运行一次测试,仅运行4次

@Echo off
SET n=0
:Loop
SET /A n=n+1
test.exe
Ping 1.1.1.1 -n 1000 -w 1 | find /V "Request timed out" | find /V "Ping" | find /V "Packets"
if %n% EQU 4 (
  exit
) Else if %n% LEQ 3 (
  Goto Loop
)

答案 1 :(得分:1)

在批处理文件中使用标签来创建循环。在循环内部,执行test.exe。

对于24小时执行期,我相信您可以创建计划任务来启动和停止执行。一旦计划的任务结束,我不确定退出的优雅程度。

答案 2 :(得分:0)

Dunno如果另外一个是可行的......从未尝试过...但这是我的镜头。

@Echo off
FOR /F "tokens=1" %%F IN ('ECHO %date%') DO (
set day=%%F
)
FOR /F "tokens=* delims=:." %%F IN ('ECHO %time%') DO (
set thetime=%%F
)

:Loop
START /B "test.exe"
FOR /F "tokens=1" %%F IN ('ECHO %date%') DO IF %date%==%day% IF %time% GEQ %thetime% (
 GOTO Loop
) Else (
 IF NOT "%date%"=="%day%" IF %time% LEQ %thetime% (
 GOTO Loop
) ELSE (
 IF NOT "%date%"=="%day%" IF %time% GRT %thetime% (
 GOTO:EOF
)
)