我有一个批处理文件,它执行一个程序以及顺序(编号)宏,并调用另一个批处理文件,该文件在开始下一次迭代之前监视它何时完成。启动程序时我无法使用 Start /wait 或其他“排序”命令,因为它是使用批处理文件和语法启动的,我无法避免使用。一旦此循环完成(在典型使用模式下,程序打开和关闭约 120 次之后),我需要再次打开它并运行不同的非顺序宏,但一旦循环完成,它就会失败。
for /l %%x in (1,1,120) do (
echo %%x
"C:\File Path\ProgramStart.bat" -macro "C:\File Path\MyScript%%x.txt"
timeout 3
start /wait OpenChecker.bat )
"C:\File Path\ProgramStart.bat" -macro "C:\File Path\AnotherScript.txt"
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里是 OpenChecker.bat:
:check
tasklist /FI "IMAGENAME eq Program.exe" 2>NUL | find /I /N "Program.exe">NUL
if "%ERRORLEVEL%" NEQ "0" exit
TIMEOUT 5
goto check
Run Code Online (Sandbox Code Playgroud)
尽管我尝试过所有的变体(无论是寻找适用于额外挑剔的程序的方法还是每个批处理文件中语法的更改),我似乎无法获取运行 AnotherScript 的程序的实例(或其他任何内容)就此而言)运行。谢谢。