带计时器的批处理循环

问题描述

| 嗨,我是新手,我遇到了一个问题。我要执行的操作是编写一个批处理文件,该文件将反复运行test.exe 24小时。一旦24小时计时器到期,该程序将退出。 我对批处理不熟悉,想知道如何做到这一点。     

解决方法

        请尝试以下代码。使用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
)
    ,        在批处理文件中使用标签创建循环。在循环内部,执行test.exe。 在24小时执行期间,我相信您可以创建一个计划任务来启动和停止执行。我不确定一旦计划的任务结束,退出将是多么的优美。     ,        邓诺(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
)
)