2012-06-24 17 views
10

Tengo un archivo de proceso por lotes que tiene un bucle for, en el bucle debo esperar para que termine el proceso entonces uso IF y GOTO, el problema es que el goto está rompiendo el ciclo , Traté de encontrar otras soluciones, pero no obtuve nada, mi código está haciendo un ciclo, luego verifico si hay un proceso en ejecución, si prog.exe no está funcionando y luego continúa el ciclo, pero no quiero romper el ciclo principal, hay alguna solucion? o alguna alternativa?archivo de proceso por lotes: vaya al ciclo

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

Respuesta

17

Dentro del bucle, puede usar una llamada a una subrutina, hay goto permitido.
El bucle no será interrumpido por una llamada a una subrutina.

@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

respuesta perfecta, gracias – Leo92

Cuestiones relacionadas