2013-03-05 8 views
5

Ich bin so mehrere Clients mit dem gleichen Batch-Skript erstellen. Wenn beim Erstellen eines Fehlers ein Fehler auftritt, wird dieser Vorgang einfach angehalten und mit dem nächsten fortgesetzt. Da auf dem Bildschirm viel ausgegeben wird und ich andere Dinge mache, fehlt mir meistens die Fehlermeldung, dass ein Build-Fehler aufgetreten ist.Stoppen Sie Batch-Skript ausgeführt werden, während Fehler

Gibt es eine Möglichkeit, die Ausführung der folgenden Aufgaben zu stoppen, wenn ein Fehler auftritt, und eine Popup-Nachricht anzuzeigen, um meine Aufmerksamkeit zu erhalten? Oder zumindest aufhören, so zu tun, wenn ich zum Befehlsfenster zurückkomme, kann ich sehen, dass es einen Fehler gab?

@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

sagen wir bauen gruppe1 gescheitert. Ich möchte dort anhalten und mich informieren, anstatt mit der Verarbeitung von Gruppe2 fortzufahren. – Tony

+1

Ich bin nicht 100% sicher, aber ich denke, dass etwas wie 'call command arguments || echo Der Befehl fehlgeschlagen && pause' sollte funktionieren. –

+1

@ProfPickle Das geht davon aus, dass perl einen Fehler gibt, den ich nicht annehmen würde. Tony welche Ausgabe gibt es, wenn es scheitert? –

Antwort

-3

Nur ein Tipp versuchen

if %ERRORLEVEL% NOT 1 
exit 0 

in Ihrem Code verwenden. Dies sollte bei einem Fehler beendet werden.

0

Die korrekte Syntax für die Ausführung zu stoppen, wenn der Fehler ist:

wenn Error-1 Ausfahrt

4

„die Errorlevel in ein Überprüfen Sie, ob Anweisung und dann die Ausfahrt/b (Ausfahrt nur die Batch-Datei , nicht den gesamten cmd.exe-Prozess) für Werte von 1 oder größer. "

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

Schauen Sie hier für weitere Details: How do I make a batch file terminate upon encountering an error?