2012-06-24 15 views
10

मेरे पास एक बैच फ़ाइल है जिसमें लूप में है, मुझे को समाप्त करने की प्रक्रिया के लिए इंतजार करना होगा, इसलिए मैं आईएफ और गोटो का उपयोग करता हूं, समस्या यह है कि गोटो लूप तोड़ रहा है , मैंने अन्य समाधान खोजने की कोशिश की लेकिन मुझे कुछ भी नहीं मिला, मेरा कोड लूप कर रहा है, तो मैं प्रोजेक्ट चलाने की जांच करता हूं, अगर prog.exe runnig नहीं है तो लूप जारी रखें, लेकिन मैं लूप के लिए मुख्य तोड़ना नहीं चाहता, क्या कोई समाधान है? या कोई विकल्प?बैच फ़ाइल: लूप के लिए गोटो इन

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

उत्तर

17

लूप के अंदर, आप एक सबराउटिन के लिए कॉल का उपयोग कर सकते हैं, वहां गोटो की अनुमति है।
लूप को सबराउटिन पर कॉल करके नहीं तोड़ा जाएगा।

@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

सही उत्तर, धन्यवाद – Leo92

संबंधित मुद्दे