cab是Microsoft私有的一种压缩格式,谈到压缩率,还要比zip高一些。但由于是私有的,用的人比较少,但Microsoft用得比较多。微软的软件安装CD里很多文件都是经过cab压缩的。winrar也是支持cab解压的,但不支持cab压缩。
其实也确实很少时候必须使用cab压缩,所以平时大家都不在意这个东西。但我今天在试图修改老毛桃版WinPE时,不得不使用了cab压缩格式。
老毛桃版的WinPE,是一个名叫WinPE.IS_的文件。我一看文件名,就猜出是原来的扩展名应该是ISO,然后被cab压缩过了,所以扩展名显示为IS_,这是微软的一贯风格。果然,用WinRAR强行打开,查看属性,为cab压缩格式1.3版,里面则是一个真正的WinPE.ISO文件。
在我修改完这个ISO后,我又不得不重新生成cab格式。这可怎么办呢?WinRAR又不支持生成cab文件。装一个WinCAB?根本不用!因为,其实微软已经把cab压缩格式支持做进winxp系统了。WinXP系统中,有两条命令:iexpress和makecab,能生成cab压缩格式。
1、iexpress - 这是一个Win32 GUI格式的程序,可生成.exe的cab压缩且自解压格式,一般用于包装软件发布。
2、命令行makecab.exe,参数如下:
Microsoft (R) Cabinet Maker - Version 5.1.2600.2180
Copyright (c) Microsoft Corporation. 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).
由于第一种是生成自解压格式的,不符合我的要求。所以我们应该使用第二种格式。
这一条指令就可以了,源文件是WinPE.ISO。输出的文件名省略,则将扩展名的最后一个字母用“_”替代,即输出的文件名为“WinPE.IS_”。这就是这什么XP的安装光盘里有很多扩展名最后一个字母是“_”的文件的由来。
注:makecab的默认压缩率不太,仅比zip好一点,但如果加上“/D CompressionType=LZX /D CompressionMemory=21”参数时,压缩率会好很多,差不多赶上winrar了。

手机也是用CAb的文件,不知道这样能用不??