一个脚本的诞生

 手上一个有一个让人很郁闷的工作,那就是维护项目组给客户的示例。这个示例包含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的脚本还是挺强大的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值