`

自动发布脚本的编写过程

阅读更多

近日领导让用脚本写个自动发布产品的脚本程序,之前都是手动下载复制的,因为本人没写过批处理文件,所以要从头开始学,部分内容搞不定就用了一些工具。

 

需求如下:

从远程http中下载相应的jar包,其中一个jar包是web文件的压缩包,需要解压后去除里面的.svn文件夹,由于远程机器的svn版本较低,.svn文件夹分布在各级子文件夹中,手动去除非常麻烦。最后将下载的jar包重命名后放在指定的目录中,web文件夹要覆盖原来已经存在的文件。

第一步:从远程通过http协议下载相应的jar包。

刚开始想到的是通过start命令打开相应的网页进行下载,命令如下:

 

[java] view plaincopy
  1. start http://1.1.12.11/Release/1.6_20140630-44874_113127/map-web2.jar  

 

这种方式会在浏览器中打开相应的页面,执行下载,浏览器会弹出提示框是否要保存,需要手动确认,此方案不太合适,被pass掉了。

于是就想不通过浏览器进行下载,后来查到一些工具,如:URL2FILE,CURL等,于是就下载了URL2FILE进行尝试,http://www.chami.com/free/url2file_wincon.html#Download

安装后重启计算机,即可使用如下命令进行下载了。

 

[java] view plaincopy
  1. URL2FILE http://1.1.12.11/Release/1.6_20140630-44874_113127/map-web2.jar  

 

 

依此下载map-ui.jar和map-dev.jar。

第二步:将需要重命名的jar包重命名。

需要将map-dev.jar重新命名为map-dev-1.6.jar命令如下:

 

[java] view plaincopy
  1. ren map-dev.jar map-dev-1.6.jar  

 

第三步:将相关jar包覆盖到指定目录中的jar包。

先用set命令设置环境变量,代码如下:

 

[java] view plaincopy
  1. set MAP_PATH="F:\map-release"  

 

然后就可以用用环境变量代替较长的路径了,移动命令为:

 

[java] view plaincopy
  1. move /Y map-ui.jar %MAP_PATH%\bin  
[java] view plaincopy
  1. move /Y map-dev-1.6.jar %MAP_PATH%\WEB-INF\lib  

其中 /Y 表示取消覆盖已经存在目标的提示。

 

第四步:解压web.jar。

解压可用winrar进行解压,命令如下:

 

[java] view plaincopy
  1. set rar="C:\Program Files\WinRAR\WinRAR.exe"  
[java] view plaincopy
  1. %rar% x map-web2.jar "web2\"

表示将map-web2.jar解压到web2文件夹中

 

第五步:除去各级.svn目录。

在此步骤中花费一天多的时间,刚开始是想用for循环递归,由于命令行没有break和continue,所以搞了好久也没搞出来,以后有时间再研究如何写递归遍历。

后来发现svn1.7以后 d中有个upgrade命令,可以将原来的较低版本的.svn升级到较高的版本,也就是可以将分散的.svn文件合并到最外层的.svn中。

由于没找到TortoiseSVN在命令行中的调用upgrade的方法,就下载了subversion,http://subversion.apache.org/packages.html#windows

 

set svn="D:\Program Files\Subversion\bin\svn.exe"
%svn% upgrade web2
rd /S /Q web2\.svn

 

第六版:将清理过的web文件夹覆盖指定目录下的web文件夹。

xcopy /S /Y web2 %MAP_PATH%\web2

 

分享到:
评论

相关推荐

    自动编译脚本编写指南 (2).docx

    自动编译脚本编写指南是指在软件开发过程中,使用脚本语言来自动完成编译工作的指南。该指南旨在帮助配置管理员、项目经理以及需要实施自动编译的相关人员,提高编译效率和质量。 一、“简单编译”对象 所谓“简单...

    Vc自动编译脚本文件生成

    标题中的“Vc自动编译脚本文件生成”指的是在软件开发过程中,为了提高效率,开发者通常会创建自动化脚本来编译Visual C++(Vc)项目。这涉及到批处理脚本技术,如Windows下的批处理文件(.bat),用于自动化执行一...

    Makefile编译脚本的编写方法

    ### Makefile编译脚本的编写方法 #### 概述 Makefile,作为一个核心的构建工具,被广泛应用于软件工程中,特别是在Unix和类Unix系统中。它通过定义一系列规则来自动化编译过程,极大地提高了软件开发的效率。本文...

    配置自动编译脚本文件

    ### 配置自动编译脚本文件:使用.bat文件实现VC8.0及VC9.0的自动编译 在软件开发过程中,自动化构建是非常重要的一环,它能够提高开发效率,减少人为错误。对于使用Visual C++(VC)进行开发的项目来说,通过创建一...

    sringboot项目自动化发布shell脚本

    这个脚本通常用于构建项目,它可能包含了编译源代码、打包成JAR或WAR文件的过程。在Spring Boot项目中,我们经常使用Maven或Gradle作为构建工具。`build.sh`可能包含如下命令: 1. 检出代码(如果是在版本控制系统...

    genesis2000脚本编写易语言模块接口

    而“gCrazy5.8.ec”和“crazy.exe”可能是genesis2000脚本的相关执行文件,其中“gCrazy5.8.ec”可能是genesis2000的编译脚本,而“crazy.exe”可能是其运行时环境。配置文件“crazy.ini”则可能存储了脚本的设置和...

    nginx一键安装包含自动安装脚本

    为了简化上述过程,可以编写一个自动安装脚本。这个脚本会自动执行下载、解压、配置、编译和安装等一系列操作,大大减少了手动操作的繁琐。脚本通常包含以下功能: 1. **检查依赖**: 检查系统是否已经安装了所需的...

    到梦空间自动报名脚本

    【到梦空间自动报名脚本】是一个利用Python编程语言编写的程序,它的主要功能是帮助用户自动在到梦空间平台上进行活动报名。到梦空间是一个为大学生提供实践、学习和交流机会的平台,通常会有各种活动需要用户手动...

    自动输入脚本 -- 解决禁止粘贴问题

    本文将详细探讨如何使用Python编写自动输入脚本来解决一些网站禁止用户通过粘贴方式输入数据的问题。Python作为一种强大的编程语言,提供了多种库和模块来实现这种功能,如`pyautogui`和`pynput`。 首先,我们需要...

    DB2 的命令行处理器和脚本编写

    在DB2环境中,命令行处理器(Command Line Processor, CLP)和脚本编写是进行数据库操作的重要工具,尤其对于系统管理员和数据库开发者来说,熟练掌握这两项技能至关重要。 1. **DB2 命令行处理器(CLP)** - **...

    自动化脚本打包苹果iap的Shell.zip

    标签“ios 自动化打包 脚本”进一步强调了这个资源是面向iOS开发者,用于自动化iOS应用的打包过程,通过编写脚本来实现这一目的。 至于压缩包中的唯一文件“Shell”,这很可能是一个Shell脚本文件,可能是.sh后缀,...

    脚本撰写指南.pdf

    本指南旨在详细介绍Shell脚本的基础命令、流程控制语法及脚本文件的撰写技巧,使之成为学习脚本编写的有效资源。 首先,Shell是一个命令解释器,它将用户输入的命令翻译成计算机能够理解的指令。交互式Shell允许...

    耳机bes-rtx5自动编译脚本:Shell版 - 简化构建流程,增强开发效率

    我们的自动化编译Shell脚本旨在将手动编译过程转化为一键式的操作,为开发团队带来前所未有的便利。手动编译不仅耗时,而且容易出错,尤其是在大型项目中。通过这个脚本,我们希望简化开发流程,让开发者能够更专注...

    CCS编译 脚本命令

    - **脚本编写**:开发者可以编写包含“CCS gmake”命令的shell脚本,实现编译、清理、调试等操作的自动化。 - **持续集成**:在持续集成环境中,如Jenkins或GitLab CI/CD,可以配置执行包含CCS gmake的脚本,确保...

    linux-全自动工具链编译脚本

    "Linux-全自动工具链编译脚本"是一个专为此目的设计的工具,它简化了手动编译过程,允许开发者快速构建针对特定环境的工具链,不仅适用于本机系统,通过适当修改也能适应Windows系统。下面我们将深入探讨这个主题。 ...

    IOS 自动打包脚本

    这个脚本通常由开发者编写,以实现一键化的编译和打包过程,减少手动操作的繁琐步骤。 在iOS开发中,Xcode是主要的集成开发环境(IDE),它支持通过命令行工具(Xcode Command Line Tools)进行自动化构建。脚本...

    Windows下git拉取/推送,SVN更新/提交,maven自动编译打包,angular打包的bat脚本

    本主题将详细讲解如何利用Git进行拉取与推送,SVN进行更新和提交,Maven实现自动化编译,以及Angular项目的打包发布,这一切都将通过批处理(BAT)脚本来实现,以提高工作效率。 首先,我们来看Git的拉取(pull)和...

    2.2.4-Shell脚本编写与执行编译ffmpeg库.zip

    - Shell脚本用于自动化编译过程,包括配置、编译和安装等步骤。 - 脚本可能包含以下部分: - 设置编译选项:如`--prefix`指定安装位置,`--enable-shared`和`--enable-static`选择编译动态库或静态库。 - 配置...

    Makefile自动化脚本,运行该脚本可直接自动生成Makefile文件

    Makefile是Linux和类Unix系统中用于自动化编译和链接过程的文件,它定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后链接,以及如何执行这些操作。在给定的场景中,`AutoMake.sh`是一个Shell脚本,...

Global site tag (gtag.js) - Google Analytics