问题描述
|
嗨,我是新手,我遇到了一个问题。我要执行的操作是编写一个批处理文件,该文件将反复运行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
)
)