2012-06-24 23 views
10

İçinde döngü için bir döngü kümesine sahip bir toplu iş dosyası var, döngü içinde sonuna kadar işlemin bitmesini beklemem için IF ve GOTO kullanıyorum, sorun goto döngüyü kırarak , Ben başka çözümler bulmaya çalıştı ama ben bir şey almadım, kodum bir döngü yapıyor sonra prog.exe çalışmazsa, bir süreç çalışıp çalışmadığını kontrol edin, daha sonra döngüye devam edin, ancak ana döngüleri kırmak istemiyorum, bir çözüm var mı ya da herhangi bir alternatif?toplu iş dosyası: döngü için goto

@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) 
) 

cevap

17

Döngüsün içinde, bir alt yordam çağrısı kullanabilirsiniz, goto'ya izin verilir.
Döngü bir alt yordam çağrısı ile kesilmez.

@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 
+0

Mükemmel cevap, teşekkürler – Leo92

İlgili konular