1.引言

本文档的编辑目的是为了实bat脚本自动打包功能,包含包的名字命名,压缩文件内外层文件夹的名字;包含svn版本号等;

2.实现介绍

1)获取svn号,生成批处理文件

写一个pak.bat文件写入下列内容,第一句是调用SubWCRev.exe文件传入参数生成pack.tmp.bat文件,第二句是调用生成的pack.tmp.bat文件;第三句是删除生成的文件;

"../../tools/SubWCRev.exe" ../../ pack.bat.t pack.tmp.bat -f

call pack.tmp.bat

del pack.tmp.bat

pause

2pack.bat.t文件模板

@rem win2000下测试通过

@rem 获取当前时间

@echo off

rem 系统不一样,日期格式有差别

for /f "tokens=1-10 delims=- " %%a in ('DATE /T') do set Date=ams_v1.11.0_svn$WCREV$_%%a%%b%%c_s

@xcopy /E /Y /I /EXCLUDE:uncopy.txt .\*.*  ..\ams

"C:\Program Files\WinRAR\WinRAR.exe" a -df -ibck ..\%Date%.zip ..\ams

Pause

3pack.tmp.bat真正的打包批处理文件

可以发现运行pack.bat文件,将文件pack.bat.t传入SubWCRev.exe后生成的pack.tmp.bat与pack.bat.t不同的地方就是文件的$WCREV$参数变成了svn号360515,这其实是用工具SubWCRev.exe获取程序的svn编号;在生成新的打包批处理文件;@标记的行都是备注;for /f 语句是bat的语句,用批处理in后面的数据或者字符串,tokens指定获取的数据个数,delims用来分割数据的分隔符,'DATE /T'表示系统时间,set设置变量;这句话的意思是获取系统时间,将a,b,c标记的年、月、日输入到变量Date中,生成压缩包的名称;xcopy语句是复制原路径下文件,到目标文件夹ams下,..\表示当前目录的上一级目录;参数/E表示复制目录和子目录,包括空文件夹;/Y参数表示如果目标目录有该文件则直接覆盖;/I表示如果目标文件夹不存在,又在复制一个以上的文件,则自动创建新的文件夹ams;/EXCLUDE:uncopy.txt表示排查的文件类型,在uncopy.txt中写明不复制的文件名称或者后缀名;.\*.*指定当前目录的所有文件;..\ams表示目标文件夹;下面一句则是调用压缩程序winRAR,需要系统安装了压缩程序,将安装路径用字符串写在开头,a表示添加文件,-df表示压缩成功后删除原有文件,如果要保留源文件则不加这个参数;-ibck表示在后台运行,不显示压缩界面和进度;后面的参数是压缩文件包的名称,用前面生成的字符串变量Date来命名;在后面是要被压缩的文件夹..\ams;

@rem win2000下测试通过

@rem 获取当前时间

@echo off

rem 系统不一样,日期格式有差别

for /f "tokens=1-10 delims=- " %%a in ('DATE /T') do set Date=ams_v1.11.0_svn360515_%%a%%b%%c_s

@xcopy /E /Y /I /EXCLUDE:uncopy.txt .\*.*  ..\ams

"C:\Program Files\WinRAR\WinRAR.exe" a -df -ibck ..\%Date%.zip ..\ams

pause

4uncopy.txt文件的内容

svn

.lib

.exp

.obj

.log

.db

.ilk

3.总结

综上所述,需要文件pak.bat、pack.bat.t、uncopy.txt、SubWCRev.exe四个文件,执行pak.bat文件,pak.bat文件将文件pack.bat.t传入SubWCRev.exe后生成的pack.tmp.bat,获取到svn号,再执行pack.tmp.bat文件,先获取到时间,和svn号一起组成压缩包的名称,然后复制文件到文件夹ams,再将ams压缩成指定名称的压缩包;最后再删除掉复制过程中生成的中间文件夹ams;就是这样一个过程;如果只是简单的复制文件;则直接使用pack.tmp.bat文件和uncopy.txt,按照自己的需求修改,执行即可;文件中的路径根据具体的路径去设置相对路径;最好是放在同一个文件夹下;

bat命令学习链接

https://www.cnblogs.com/SunShineYPH/archive/2011/12/13/2285570.html

xcopy详细学习链接

https://baike.baidu.com/item/xcopy

bat中RAR命令参数详解

https://www.cnblogs.com/len0031/p/5888560.html

bat自动打包压缩实现的更多相关文章

  1. vue-webpack项目自动打包压缩成zip文件批处理

    为什么需要这个? 使用vue框架开发项目,npm run build这个命令会一直用到,如果需要给后端发包,那你还要打包成zip格式的压缩包,特别是项目提测的时候,一天可能要执行重复好几次,所以才有了 ...

  2. Vue -- webpack 项目自动打包压缩成zip文件

    这段时间用 Vue2.0 开发项目,每次打包都会用到 npm run build 命令,但是每次部署时给后端发包都要手动zip压缩,这样一两次还行,但遇到项目板块测试和临时加急功能测试的时候,一天可能 ...

  3. 使用Bat自动打包并通过FTP发送到备份服务器——实战测试

    这个bat文件要求本地安装有winrar解压软件,位置是:C:\Program Files\WinRAR\WinRAR.exe 如果执行报错,请检查你复制我的代码是否有问题,有些复制粘贴进去后因为一些 ...

  4. Jenkins 实现前端自动打包,自动部署代码及邮件提醒功能

    在之前的公司,我们前端使用webpack构建项目,项目构建完成后,我们会使用ftp或linux的一些命令工具上传我们的文件到服务器上,这种方式虽然是可以,但是最近面试的时候,人家会问我前端如何部署项目 ...

  5. linux下如何打包压缩?解包解压?.tar文件.gz文件

    ===文件打包.压缩 ==打包 tar [root@521478.com]# tar -cvf etc1.tar /etc //c创建 v详细 f打包后文件名 [root@521478.com]# t ...

  6. Linux打包压缩.md

    Linux下打包压缩命令 下面学习一下压缩和打包的相关命令,首先得先明确两个概念,即:压缩和打包 .我们实际使用中一般是打包和压缩结合的使用,为了学习下面简要的介绍一下压缩文件或目录的命令. 压缩:将 ...

  7. xcodebuild和xcrun实现自动打包iOS应用程序

    随着苹果手持设备用户的不断增加,ios应用也增长迅速,同时随着iphone被越狱越来越多的app 的渠道也不断增多,为各个渠道打包成了一件费时费力的工作,本文提供一种比较智能的打包方式来减少其带来的各 ...

  8. C#实现APK自动打包

    C#实现APK自动打包     最近做了一个安卓项目,其中有一个自动打包的功能,要把供应商id写入APK后打包.   一.思路     在AndroidMinifest.xml中加入一个标识字段,如下 ...

  9. 【转】在ASP.NET MVC中,使用Bundle来打包压缩js和css

    在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原 ...

随机推荐

  1. git遇到的问题解决方案

    问题1: The requested URL returned error: 401 Unauthorized while accessing? 问题原因: 1.无法访问是因为你将项目设置为私人的,所 ...

  2. 关于JS中变量提升的规则和原理的一点理解(二)

    上篇文章中讲到变量提升和函数提升的先后顺序时蒙了,后来去查了一下资料,特别整理一下. 在<你不知道的JavaScript(上卷)>一书的第40页中写到:函数会首先被提升,然后才是变量. 书 ...

  3. python查询完结篇

    0x00 网上找一个查询网站,然后自己写的一个脚本 0x01 代码送上: import requests import time from bs4 import BeautifulSoup strat ...

  4. [bzoj 2017] [Usaco2009 Nov]硬币游戏

    一个多月没更博客了..(期间明白了自己有多傻逼. 这种问题大概就倒着做... f[i][j]:表示考虑剩下的硬币i..n,且之前的人取了j个时,先手最多拿到的钱数.aft[i]:表示硬币i..n的总钱 ...

  5. LightOJ1012-Guilty Prince-DFS

    Guilty Prince  Time Limit: 2 second(s) Memory Limit: 32 MB Once there was a king named Akbar. He had ...

  6. 搭建vue开发环境的步骤

    相信很多人在刚开始学习vue这个框架的时候,在最开始搭建开发环境的时候,都会遇到一些大大小小的坑,我之前在学习angular的时候搭建过一次,过了一个月后在搭建第二次的时候,竟然有一些混乱,所以今天想 ...

  7. eclipse(Version: Mars.2 Release (4.5.2)) groovy plugin install process.

    There are two way to install : First: 1.check your eclipse version:Help-->About Eclipse 2.open He ...

  8. 从XMLHttpRequest请求响应里getResponseHeader(header)报错:Refused to get unsafe header "**" 问题解决

    问题产生原因: 原因1:W3C的 xhr 标准中做了限制,规定客户端无法获取 response 中的 Set-Cookie.Set-Cookie2这2个字段,无论是同域还是跨域请求: 原因2:W3C ...

  9. [数据分析工具] Pandas 功能介绍(一)

    如果你在使用 Pandas(Python Data Analysis Library) 的话,下面介绍的对你一定会有帮助的. 首先我们先介绍一些简单的概念 DataFrame:行列数据,类似 Exce ...

  10. 浅谈localStorage、sessionStorage 与cookie

    由于工作的需要,今天使用了下localStorage.sessionStorage和cookie,感觉这玩意儿还挺好用的. 关于localStorage与sessionStorage的知识点以及用法之 ...