文档章节

bat脚本中执行一系列外部脚本或命令中途任意环节失败而结束整个脚本执行的处理方法

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 338
阅读 8
收藏 0

举一个常见例子:

在一个发布脚本中,进行realse操作可能需要如下几个步骤:


1. 调用build工具进行build

2. 使用SSH工具上传build出的jar包

3. 使用SSH工具向远程主机发布重启服务的命令


上述任何环节出错,则后续动作再执行已无意义,所以整个脚本应该停止执行,这种处理可以使用以下命令方式:

call 第三方脚本或程序1

if "%errorlevel%"=="1" goto :end

call 第三方脚本或程序2

if "%errorlevel%"=="1" goto :end


以下是一段示例代码:

@echo off

set profile=%1

if "%2"=="release" goto release

rem #######################################################################################

:release

echo.
echo ***************************************************************************************
echo BUILD ALL MODULES...
echo ***************************************************************************************

call mvn install -DskipTests=true -P%profile%
if "%errorlevel%"=="1" goto :releasefailed

echo.
echo ***************************************************************************************
echo DEPLOY CORE MODULE...
echo ***************************************************************************************

call its-core\target\classes\core-dev-tool.bat deploy
if "%errorlevel%"=="1" goto :releasefailed

echo.
echo ***************************************************************************************
echo DEPLOY CLIENT MODULE...
echo ***************************************************************************************

call its-client\target\classes\client-dev-tool.bat deploy
if "%errorlevel%"=="1" goto :releasefailed

echo.
echo ***************************************************************************************
echo DEPLOY SERVER MODULE...
echo ***************************************************************************************

call its-server\target\classes\server-dev-tool.bat deploy
if "%errorlevel%"=="1" goto :releasefailed

echo.
echo ***************************************************************************************
echo DEPLOY SDK MODULE...
echo ***************************************************************************************

call its-sdk\target\classes\sdk-dev-tool.bat deploy
if "%errorlevel%"=="1" goto :releasefailed

echo.
echo ***************************************************************************************
echo RESTART HBASE ...
echo ***************************************************************************************

call its-server\target\classes\server-dev-tool.bat restart-hbase
if "%errorlevel%"=="1" goto :releasefailed
goto releasesuccess

rem #######################################################################################

:releasesuccess
echo.
echo.
echo ***************************************************************************************
echo RELEASE SUCCESS!!
echo ***************************************************************************************
goto end

:releasefailed
echo.
echo.
echo ***************************************************************************************
echo RELEASE FAILED!!
echo ***************************************************************************************
goto end

:end


本文转载自:http://blog.csdn.net/bluishglc/article/details/17189883

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
Bash 脚本 set 命令教程

服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节。 命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本文介绍它的基本用法,让你可以更安心地...

阮一峰
2017/11/15
0
0
朗科实习期间心得笔记(七)

bash多命令执行方法: 1.命令替换 COMMAND1 $(COMMAND2) 2.管道 COMMAND1 | COMMAND2 | COMMAND3 .... 3.顺序执行结构 COMMAND1 ; COMMAND2 ; COMMAND3 ... 4.选择执行结构 如果。。。那...

sherlockR
2017/11/15
0
0
编程语言和shell编程的基础内容以及grep、egrep命令及相应的正则表达式和用法

bash的特性之多命令执行的逻辑关系: 1.命令替换 COMMAND1 $(COMMAND2) 2.管道 COMMAND1 | COMMAND2 | COMMAND3 ... 3.顺序执行结构 COMMAND1 ; COMMAND2 ; COMMAND3 ... 4.选择执行结构: ...

Vayne36
2017/11/17
0
0
bash的多命令执行,shell脚本基础及grep系

bash的特性之多命令执行的逻辑关系 1.命令替换 COMMAND1 $(COMMAND2) :先执行COMMAND2然后再作为COMMAND1的参数执行COMMAND1 [root@localhost ~]# ls /mnt a.sh a.txt [root@localhost mnt...

一期一会cc
06/26
0
0
编程语言和shell编程基础

编程语言和shell编程基础 bash的特性之多命令执行的逻辑关系: 1.命令替换 command1 $(command2) 2.管道 command1 | command2 |command3..... 3.顺序执行结构 command1 ;command2; command3...

晴空ytc
2017/11/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

bat强制启用宏

运行bat文件后,将宏的安全等级设为低,达到启用宏的目的。 REM 这个文件将提供用户快速设置Excel宏的安全等级@ECHO OFFCLS:cmd4REG ADD "HKEY_CURRENT_USER\Software\Mi...

tedzheng
3分钟前
0
0
流,用声明性的方式处理数据集 - 读《Java 8实战》

引入流 Stream API的代码 声明性 更简洁,更易读 可复合 更灵活 可并行 性能更好 流是什么? 它允许以声明方式处理数据集合 遍历数据集的高级迭代器 透明地并行处理 简短定义:从支持数据处理...

yysue
4分钟前
0
0
postman发送json格式的post请求

postman发送json格式的post请求 在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Content-Type , value:application/json 点击"body",''ra...

两广总督bogang
11分钟前
0
0
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)

最近碰到个需求,需要把当前页面生成pdf,并下载。弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 项目源码地址:https://github.com/linwalker/render-html-to-pdf html2ca...

孟飞阳
12分钟前
0
0
pureftp源码编译及设定

--- use for RHEL 567 and Ubuntu 1604 1. download pureftpd wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.bz2 2. install gcc #apt-get install -y li......

zzimac
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部