遇到错误时停止执行批处理脚本

时间:2013-03-05 22:30:12

标签: batch-file batch-processing dos

所以我使用相同的批处理脚本构建多个客户端。如果在构建一个错误时出现错误,则该过程将停止并继续下一个过程。因为屏幕上有很多输出而我正在做其他事情,大部分时间我都想念有一个构建错误。

如果出现错误,有没有办法停止执行以下任务,并显示弹出消息以引起我的注意?或者至少停止执行,所以当我回到命令窗口时,我可以看到发生了故障?

@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

3 个答案:

答案 0 :(得分:4)

“检查if语句中的errorlevel,然后退出/ b(仅退出批处理文件,而不是整个cmd.exe进程),值为1或更大。”

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

在此查看详细信息:How do I make a batch file terminate upon encountering an error?

答案 1 :(得分:1)

如果错误是:

,则停止执行的正确语法
  

如果ERRORLEVEL 1退出

答案 2 :(得分:-3)

只需尝试使用

if %ERRORLEVEL% NOT 1 
exit 0
你的代码中的

。这应该在出错时退出。