bat脚本中执行一系列外部脚本或命令中途任意环节失败而结束整个脚本执行的处理方法
2013-12-07 17:56
591 查看
举一个常见例子:
在一个发布脚本中,进行realse操作可能需要如下几个步骤:
1. 调用build工具进行build
2. 使用SSH工具上传build出的jar包
3. 使用SSH工具向远程主机发布重启服务的命令
上述任何环节出错,则后续动作再执行已无意义,所以整个脚本应该停止执行,这种处理可以使用以下命令方式:
call 第三方脚本或程序1
if "%errorlevel%"=="1" goto :end
call 第三方脚本或程序2
if "%errorlevel%"=="1" goto :end
以下是一段示例代码:
在一个发布脚本中,进行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
相关文章推荐
- 批处理bat 延时执行命令的两种方法
- 批处理bat 延时执行命令的两种方法
- java执行DOS命令或bat脚本需要等命令执行完有返回值(process.waitFor();)阻塞情况解决方法
- java 执行命令、调用bat文件、调用外部程序的两种方法
- DC/PT在任意位置停止执行脚本的方法
- 开关机自动执行脚本方法[以及切换用户执行命令方法]
- MySQL执行外部sql脚本文件的命令
- 脚本中执行scp命令的方法
- MySQL执行外部sql脚本文件的命令
- Linux中执行shell脚本命令的4种方法总结
- Oracle数据库案例整理-执行Oracle脚本失败或异常-SQL命令中字符串参数使用双引号导致更新数据库表信息失败
- Cocoa中用NSTask执行外部命令并获取输出结果的方法
- Android 开发环境jdk配置 执行javac提示不是内部或外部命令解决方法
- linux 下shell脚本执行多个命令的方法
- Shell脚本基础20-for循环执行命令-结束篇
- 使用PHP执行系统外部命令的四种方法
- 用NSTask执行外部命令并获取输出结果的方法
- shell脚本直接执行没有问题,crontab定时执行失败的解决方法
- bat脚本采用sqlplus登录oracle并若登录失败不卡住bat脚本的执行流程
- 调用JOB执行外部脚本报错ORA-27369解决方法