-1

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

4

1 回答 1

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因此,在添加之后的行上

设置路径=C:\Users\MyName\Documents\School\Processing\Sketch_8\application.windows32;%path%

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

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

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

于 2013-04-17T08:01:41.130 回答