批处理文件,如果已经运行则运行下一个程序

时间:2012-06-10 19:47:59

标签: batch-file

基本上我刚才有一个简单的批处理脚本,多次启动程序让我们称之为1.exe,1.exe将启动20次,然后在%of seconds(由命令行参数指定)后被杀死。

我需要做的是如果1.exe已经在运行,请启动2.exe,如果2.exe和1.exe已经在运行启动3.exe,依此类推。

我刚刚拥有的所有代码都是

Timeout /t 20 /nobreak >nul
echo.
taskkill /F /IM %programname%
echo.
pause >nul

还启动了1.exe

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

下面的批处理代码如果1.exe已经运行,则启动2.exe,如果2.exe已经在运行,则启动3.exe,等等:

for /L %%i in (1,1,20) do (
   for /F "skip=3" %%e in ('tasklist /fi "imagename eq %%i.exe"') do (
      if "%%e" equ "%%i.exe" set lastExe=%%i
   )
)
set /A lastExe+=1
%lastExe%.exe