批处理 - 如何以时间间隔逐个打开(和关闭)多个程序作为一个循环?

时间:2013-04-17 07:40:12

标签: batch-file processing cycle

我希望这是有道理的。我想创建一个批处理文件或类似的东西,它将循环通过一些处理应用程序进行演示。有没有办法可以按时间间隔执行应用程序,在执行下一个应用程序之前关闭,然后循环回第一个应用程序?

1 个答案:

答案 0 :(得分:0)

当然可以。

@ECHO OFF
SETLOCAL
:loop
FOR %%i IN ("process1.exe 20" "process2.exe 30" "process3.exe 10") DO CALL :cycle %%~i
GOTO loop

:cycle
START %1
timeout /t %2 >nul
TASKKILL /im %1 >nul
GOTO :eof

运行process1 20秒,process2运行30 - 获得模式?这些过程毫不客气地终止。

按control-C并回复Y终止 - 将调用最后一个进程。

<小时/> 附录:

TASKKILL对“路径”一无所知 - 只知道可执行文件的名称。

因此,在setlocal添加

之后的行上

set path = C:\ Users \ MyName \ Documents \ School \ Processing \ Sketch_8 \ application.windows32;%path%

并仅在FOR语句中指定可执行文件。

如果涉及多个目录名,请将它们与;分隔符和最后的;%path%串在一起。

Windows首先在当前目录中查找path中的可执行文件,然后依次查看路径上的每个目录,直到找到所需的可执行文件为止。添加额外目录仅在此批处理运行时发生,并且仅适用于批处理的实例 - 它不会传输到任何其他进程。