我希望这是有道理的。我想创建一个批处理文件或类似的东西,它将循环通过一些处理应用程序进行演示。有没有办法可以按时间间隔执行应用程序,在执行下一个应用程序之前关闭,然后循环回第一个应用程序?
答案 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
中的可执行文件,然后依次查看路径上的每个目录,直到找到所需的可执行文件为止。添加额外目录仅在此批处理运行时发生,并且仅适用于批处理的实例 - 它不会传输到任何其他进程。