пакетный файл: перейти в цикл

У меня есть командный файл, в котором есть цикл for, в цикле я должен дождаться завершения процесса, поэтому я использую IF и GOTO, проблема в том, что goto прерывает цикл, я пытался найти другие решения, но я не получил что-нибудь, мой код выполняет цикл, затем я проверяю, запущен ли процесс, если prog.exe не запущен, продолжаю цикл, но я не хочу прерывать основной цикл for, есть ли решение? или какая альтернатива?

@echo off
for /f "tokens=*" %%a in (file.txt) do (
bla bla bla
bla bla bla
:check
tasklist /FI "IMAGENAME eq prog.exe" 2>NUL | find /I /N "prog.exe">NUL
if "%ERRORLEVEL%"=="0" (goto check)
)

person Leo92    schedule 24.06.2012    source источник


Ответы (1)


Внутри цикла вы можете использовать вызов подпрограммы, разрешены переходы.
Цикл не будет прерван вызовом подпрограммы.

@echo off
for /f "tokens=*" %%a in (file.txt) do (
  bla bla bla
  bla bla bla
  call :check
)
exit /b

:check
tasklist /FI "IMAGENAME eq prog.exe" 2>NUL | find /I /N "prog.exe">NUL
if "%ERRORLEVEL%"=="0" (goto check)
exit /b
person jeb    schedule 24.06.2012