码迷,mamicode.com
首页 > 其他好文 > 详细

bat自动打包压缩实现

时间:2018-02-05 23:29:14      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:相对   strong   详解   ken   写入   hive   exp   sub   意思   

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自动打包压缩实现

标签:相对   strong   详解   ken   写入   hive   exp   sub   意思   

原文地址:https://www.cnblogs.com/bclshuai/p/8419450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!