2013-03-05 11 views
5

Tak więc buduję wielu klientów przy użyciu tego samego skryptu wsadowego. Jeśli wystąpi błąd podczas budowania, proces ten po prostu się zatrzymuje i przechodzi do następnego. Ponieważ na ekranie jest dużo danych wyjściowych i robię inne rzeczy, w większości przypadków tęsknię za błędem kompilacji.Zatrzymaj skrypt wsadowy przed wykonaniem podczas napotykania błędu

Czy istnieje sposób, aby zatrzymać wykonywanie następujących zadań, jeśli wystąpił błąd, i wyświetlić komunikat wyskakujący, aby zwrócić moją uwagę? A przynajmniej przestań to robić, kiedy wracam do okna poleceń, widzę, że nastąpiła awaria?

@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

powiedzmy budowania grupa1 powiodło się. Chcę się tam zatrzymać i otrzymać powiadomienie, zamiast kontynuować przetwarzanie grupy2. – Tony

+1

Nie jestem w 100% pewny, ale myślę, że coś w stylu 'argumenty polecenia wywołania || echo Polecenie nie powiodło się && pause' powinno działać. –

+1

@ProfPickle Zakładamy, że perl daje poziom błędu, który zakładam, że nie. Tony, jakie wyniki daje, jeśli się nie uda? –

Odpowiedz

-3

Just a wskazówka spróbować użyć

if %ERRORLEVEL% NOT 1 
exit 0 

w kodzie. to powinno wyjść z błędem.

0

Poprawna składnia zatrzymanie wykonanie jeśli błąd jest: tylko

jeśli ERRORLEVEL 1 wyjście

Powiązane problemy