登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

梦想之鹰的天空

天高任鸟飞......放飞....心情..........放飞.....梦想

 
 
 

日志

 
 

makecab压缩整个目录  

2008-12-29 22:54:40|  分类: 桌面应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

dir.txt:

列举需要添加的文件名:

jinstall.exe
jinstall-1_4_2_04.inf

如使用它一次对多个文件打包,先要写一个包含打包文件的文本文件,然后在命令行执行

 Makecab /F dir.txt /d maxdisksize=1024000000

系统将在当前目录下形成一个子目录和setup*.*共两个文件。将该目录下的CAB文件改名为Msracli.cab即可

 

 

MakeCAB是微软提供的制作CAB的文件,详细的MakeCAB介绍请参考微软MSDN。系统给出命令用法如下:

Microsoft (R) Cabinet Maker - Version (32) 1.00.0601 (03/18/97)
Copyright (c) Microsoft Corp 1993-1997. All rights reserved.

MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]

  source        File to compress.
  destination    File name to give compressed file.  If omitted, the
                last character of the source file name is replaced
                with an underscore (_) and used as the destination.
  /F directives  A file with MakeCAB directives (may be repeated).
  /D var=value  Defines variable with specified value.
  /L dir        Location to place destination (default is current directory).
  /V[n]          Verbosity level (1..3).

如果目录里面有多个文件,那么就需要编写一个文件列表文件,用来告诉MakeCAB,有多少文件需要打包。
简单的编写了一个list.txt文件,里面仅仅包含2行。一个是libactivex.inf,一个libactivex.dll
然后执行:

makecab /F list.txt /D compressiontype=lzx /D compressionmemory=21 /V

系统将显示压缩过程和压缩结果,如下:

Microsoft (R) Cabinet Maker - Version 5.1.2600.2180
Copyright (c) Microsoft Corporation. All rights reserved..

287,395 bytes in 2 files
Total files:              2
Bytes before:      287,395
Bytes after:        162,170
After/Before:            56.43% compression
Time:                    0.74 seconds ( 0 hr 0 min 0.74 sec)
Throughput:            378.76 Kb/second

压缩之后,目录下将生成一个目录,将目录里面的文件改名成libactivex.cab(可以是你需要的文件名)就OK了。

然后就可以放到WEB服务器的目录下,IE打开的时候就会提示下载了。


附:INF的生成方法将在以后介绍。

其实,还有2个办法生成CAB文件,一个就是利用Visual Studio,另外一个就是利用专门的打包工具,可以google一下。

makecab 的使用方法详解与技巧 :

最简单的用法:
makecab 文件完整的名称 如 makecab wmd.dll

指定压缩类型及使用内存的大小:
makecab /d compressiontype=lzx /d compressionmemory=21 wmd.dll 压缩比高

批量压缩的办法:
for %v in (*.*) do makecab %v

之前俺研究了好久,都不知道怎么用一条命令将一个目录下的所有文件压缩成CAB包,现在终于知道了,压缩成一个CAB包的办法:
makecab /f list.txt /d compressiontype=mszip /d compressionmemory=21 /d maxdisksize=1024000000 /d diskdirectorytemplate=dd* /d cabinetnametemplate=dd*.cab

来个高压缩比的:
makecab /f list.txt /d compressiontype=lzx /d compressionmemory=21 /d maxdisksize=1024000000 /d diskdirectorytemplate=dd* /d cabinetnametemplate=dd*.cab

这儿的list.txt里面是文件的列表,如果是相对路径那么要放到要压缩的文件夹中,如果是绝对路径就可以放到任何地方喽!

  评论这张
 
阅读(2946)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018