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