Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件,如果已运行,则运行下一个程序_Batch File - Fatal编程技术网

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

Batch file 批处理文件,如果已运行,则运行下一个程序,batch-file,Batch File,基本上,我刚才有一个简单的批处理脚本,可以多次启动一个程序,我们称它为1.exe,1.exe将启动20次,然后在%秒后被终止(由命令行参数指定) 我需要做的是,如果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.exe,1.exe将启动20次,然后在%秒后被终止(由命令行参数指定)

我需要做的是,如果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.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

几个问题:1。可执行文件真的被称为
1.exe
2.exe
等吗。。。有没有一种简单的方法来重复他们的名字?2.您是否需要只运行一次
2.exe
,或者
1.exe
在任何时间点都没有运行?