一个脚本的诞生
2009-06-23 20:46
162 查看
手上一个有一个让人很郁闷的工作,那就是维护项目组给客户的示例。这个示例包含4个project,各有20多个文件,每次修改的时候就会有示例需要修改,修改后的文件必须按照project为单位打成zip包,copy到指定的地方去。包里不能包含编译产生的文件,还必须包含所引用的DLL。所以每次我要对每个project做以下操作:
1. 删除bin目录;
2. 看引用了那些dll,从一个地方考过来覆盖掉,通常是4个,每个名字都很长;
3. 把project打成zip包;
4. copy到指定地方。
4个操作,重复4遍,看着简单,实际相当的无趣,而且稍有点儿错老板就不高兴了。
几经周折后,我决定写了如下脚本,当然首先感谢7zip这个伟大的压缩开源项目,让我有机会从命令行生成zip文件。
脚本和4个project放在同一个目录下。该目录下还有一个Assembly文件夹存放所有的dll文件。
首先,删除掉上次生成的zip文件:
del *.zip
接下来的脚本还是比较巧妙的,它首先扫描项目中引用了那些dll,然后从Assembly文件夹中考出去覆盖掉。
解释一下 连续两个%是因为批处理文件中,第一个%是转义用的。%~nxx表示文件的名字和扩展名,直接用%x的话,代表文件的全路径,那是相当的长。
for /R . %%x in (*.dll) do (
Attrib -R %%x
copy /Y Assembly/%%~nxx %%x
)
下一步删除所有编译生成的文件, /S是递归删除,/Q 无需确认
rmdir /S/Q xxx/bin xxx/obj
7z a xxx.zip xxx/
去掉目标的只读属性
Attrib -R -S %DEST%/*.zip
考过去,用新的zip覆盖旧的 /Y 无需确认
copy /Y *.zip %DEST%/SampleCode/
不禁感慨dos的脚本还是挺强大的。
1. 删除bin目录;
2. 看引用了那些dll,从一个地方考过来覆盖掉,通常是4个,每个名字都很长;
3. 把project打成zip包;
4. copy到指定地方。
4个操作,重复4遍,看着简单,实际相当的无趣,而且稍有点儿错老板就不高兴了。
几经周折后,我决定写了如下脚本,当然首先感谢7zip这个伟大的压缩开源项目,让我有机会从命令行生成zip文件。
脚本和4个project放在同一个目录下。该目录下还有一个Assembly文件夹存放所有的dll文件。
首先,删除掉上次生成的zip文件:
del *.zip
接下来的脚本还是比较巧妙的,它首先扫描项目中引用了那些dll,然后从Assembly文件夹中考出去覆盖掉。
解释一下 连续两个%是因为批处理文件中,第一个%是转义用的。%~nxx表示文件的名字和扩展名,直接用%x的话,代表文件的全路径,那是相当的长。
for /R . %%x in (*.dll) do (
Attrib -R %%x
copy /Y Assembly/%%~nxx %%x
)
下一步删除所有编译生成的文件, /S是递归删除,/Q 无需确认
rmdir /S/Q xxx/bin xxx/obj
7z a xxx.zip xxx/
去掉目标的只读属性
Attrib -R -S %DEST%/*.zip
考过去,用新的zip覆盖旧的 /Y 无需确认
copy /Y *.zip %DEST%/SampleCode/
不禁感慨dos的脚本还是挺强大的。
相关文章推荐
- 用c++创建一个Linux上的Daemon程序,含SHELL管理脚本(一)
- 一个用shell写的执行java程序的脚本
- 使用flock保证同一时间只有一个脚本在运行
- 分享一个iptables防火墙的脚本和防御ddos攻击的脚本
- 一个大型MySQL分布式系统诞生
- 一个php脚本占用了多少内存呢
- 一个网站的诞生10--自动化部署
- 【转】Shell 编程--本文结合大量实例阐述如何编写一个shell脚本
- 一个javascript脚本库
- [脚本] 转载一个抛物线的代码
- 高级Bash脚本编程指南 一个对脚本编程技术的深入探讨
- 一个用sed给xml的标签编号的Bash脚本
- 一个Mysql自动备份脚本
- 一个Mysql自动备份脚本
- 一个基于flask的web应用诞生 bootstrap框架美化(3)
- shell脚本一个时间循环
- 一个自动备份上传的脚本
- kc回拨的一个python脚本
- 做了一个简易的git 代码自动部署脚本