文档章节

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

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 338
阅读 7
收藏 0
点赞 0
评论 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

A20硬盘格式化

1>fdisk_shell.sh文件需在linux下用vim生成 否则会出很多意想不到的问题, 若在win下生成该文件在导入linux需用busybox dos2unix fdisk_shell.sh命令转化为linux文件。 2>整体思路:在应用层...

wangjian19 ⋅ 2013/12/10 ⋅ 0

朗科实习期间心得笔记(七)

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

sherlockR ⋅ 2017/11/15 ⋅ 0

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

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

Vayne36 ⋅ 2017/11/17 ⋅ 0

几个批处理例子

例一、再给出一个已经过时的例子(a.bat): @echo off if exist C:/Progra~1/Tencent/AD/.gif del C:/Progra~1/Tencent/AD/.gif a.bat 为 什么说这是个过时的例子呢?很简单,因为现在已经几...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Windows脚本 - Bat批处理命令使用教程

照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 OK,never claver and get to business(闲话少说言归正传)。批处理,也称为批处理脚本,英文译为BATCH,批处理文件后...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

bash的多命令执行,shell脚本基础及grep系

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

一期一会cc ⋅ 2017/11/18 ⋅ 0

编程语言和shell编程基础

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

晴空ytc ⋅ 2017/11/17 ⋅ 0

编程语言和shell编程基础

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

晴空ytc ⋅ 2017/11/18 ⋅ 0

bash编程及多命令

bash脚本编程: 编程?使用人类自然语言或机器语言进行程序源代码书写的过程 为什么要编程?为了能够让用户在使用计算机的时候,可以让计算机以非交互的方式完成某些任务;此时用户需要将此类...

小小殊童 ⋅ 2017/11/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

一篇文章学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用...

Jake_xun ⋅ 19分钟前 ⋅ 0

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 52分钟前 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 55分钟前 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 58分钟前 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 今天 ⋅ 0

linux实用操作命令

参考 http://blog.csdn.net/qwe6112071/article/details/50806734 ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 同-a,但不列出"."和"...

简心 ⋅ 今天 ⋅ 0

preg_match处理中文符号 url编码方法

之前想过直接用符号来替换,但失败了,或者用其他方式,但有有些复杂,这个是一个新的思路,亲测可用 <?php$str='637朗逸·超速新风王(300)(白光)'; $str=iconv("UTF-8","GBK",$s...

大灰狼wow ⋅ 今天 ⋅ 0

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 今天 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 今天 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部