开发者

Batch Loop with Timer

开发者_StackOverflow社区

Hi I'm new to batch and I am running into a issue. What i'm looking to do is to write a batch file that will run a command test.exe over and over for 24 hours. Once the 24 hour timer expire, the program will exit.

I am not familiar with batch and was wondering how this can be done.


Try this code below. Using ping as timer and hiding it in the background using find switches.
You can modify timer by playing with ping command and to exit play with %n% variable.
This code re-runs test approx every 30 minutes and runs only 4 times

@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
)


Use a label in your batch file to create a loop. Inside the loop, execute the test.exe.

For the 24-hour execution period, I believe you can create a scheduled task to start and stop the execution. I am not sure how graceful the exit will be once the scheduled task will end.


Dunno if a double else is feasable... never tried... but here's my shot.

@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
)
)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜