2013-03-05 9 views
5

का सामना करते समय निष्पादन से बैच स्क्रिप्ट रोकें तो मैं एक ही बैच स्क्रिप्ट का उपयोग करके एकाधिक क्लाइंट का निर्माण कर रहा हूं। यदि किसी के निर्माण के दौरान कोई त्रुटि हुई है, तो वह प्रक्रिया बस बंद हो जाती है और अगले के साथ जारी रहती है। क्योंकि स्क्रीन पर बहुत सारे आउटपुट हैं और मैं अन्य चीजें कर रहा हूं, ज्यादातर समय मुझे याद आती है कि एक बिल्ड त्रुटि थी।त्रुटि

क्या कोई त्रुटि होने पर निम्न कार्य निष्पादित करना बंद करने का कोई तरीका है, और मेरा ध्यान पाने के लिए पॉपअप संदेश दिखाएं? या कम से कम निष्पादन बंद करो ताकि जब मैं कमांड विंडो पर वापस आऊं तो मैं देख सकता हूं कि विफलता थी?

@echo off 

if "%1"=="?" GOTO HELP 

if NOT "%1"=="" set rev=%1 
if NOT "%2"=="" set version=%2 

@echo on 
rem build one 
call perl buildClient.pl -brandName="myBrand" -group="group1" 

rem build two 
call perl buildClient.pl -brandName="myBrand" -group="group2" 

rem build three 
call perl buildClient.pl -brandName="myBrand" -group="group3" 

rem build four 
call perl buildClient.pl -brandName="myBrand" -group="group4" 


    @echo off 

    goto EXIT 

    :HELP 
    cls 
    echo. 
    echo. 
    echo usage: buildbrand.bat [revision] [version] [group] 
    echo. 
    echo  ?   = this help screen 
    echo. 
    echo  revision = build version 
    echo      Example: 5.2.31 
    echo  group  = group of phones or phone name 
    echo      Example: SonyEricsson\K750 
    echo. 
    :EXIT 
    set version= 
    set rev= 
    set brandName= 
    PAUSE 
+0

चलो कहते हैं कि निर्माण GROUP1 विफल रही हैं। मैं वहां रुकना चाहता हूं और समूह 2 को संसाधित करने के बजाए खुद को अधिसूचित करना चाहता हूं। – Tony

+1

मैं 100% निश्चित नहीं हूं, लेकिन मुझे लगता है कि 'कॉल कमांड तर्क जैसे कुछ || echo कमांड विफल हुआ और रोकें' काम करना चाहिए। –

+1

@ProfPickle यह मानते हुए कि पर्ल एक त्रुटि स्तर देता है जिसे मैं मानता हूं कि यह नहीं करता है। टोनी अगर यह विफल रहता है तो यह क्या आउटपुट देता है? –

उत्तर

-3

बस एक टिप अपने कोड में

if %ERRORLEVEL% NOT 1 
exit 0 

उपयोग करके देखें। यह त्रुटि पर बाहर निकलना चाहिए।

0

निष्पादन रोक अगर त्रुटि है के लिए सही सिंटैक्स: केवल

अगर ERRORLEVEL 1 से बाहर निकलें

4

"बाहर निकलें/b एक में errorlevel देखें कि क्या बयान है, और फिर (निकास बैच फ़ाइल , पूरी cmd.exe प्रक्रिया नहीं) 1 या उससे अधिक के मानों के लिए। "

if %errorlevel% neq 0 exit /b %errorlevel% 

जानकारी के लिए यहाँ देखो: How do I make a batch file terminate upon encountering an error?

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