无忧启动论坛
标题:
请问怎样使用makecab.exe将若干文件打包成一个cab!
[打印本页]
作者:
暖锋吹过
时间:
2006-11-2 17:51
标题:
请问怎样使用makecab.exe将若干文件打包成一个cab!
老毛桃求救啊!
好象baidu上搜索到一个你的文章的!
不过写的不很详细啊!
有没有办法呢?
p.s.论坛要是有搜索功能就好了
WZ原创 | 批量文件CAB打包工具分享
WZ原创 | 批量文件CAB打包工具分享
在光盘启动区看到过一些网友说需要将一些文件打包成 CAB 格式,对于单个文件,makecab 命令即可搞定。但是若要将批量文件打包成一个 CAB 格式的文件,就不大容易了,需要设置很多参数,甚至要借助脚本才能方便地执行。
而且,我们平常运行 makecab 的时候,其压缩效果并不让人满意,需要加上 /D CompressionType=LZX /D CompressionMemory=21 这两个参数才可以达到最高的压缩率。老毛桃这里做了个脚本,默认使用最大压缩率,可以将批量文件压缩成一个压缩包,也可以将批量文件分别压缩成一个个的小压缩包,也可以选择压缩单个的文件。
================================================
要测试压缩效果,可以找一个几十 MB 的文件,先使用 Makecab 文件名 的方式压缩一下,再使用老毛桃的方法对比一下就知道了。
加上 /D CompressionType=LZX /D CompressionMemory=21 这两个参数后的压缩比,是非常高的,已经超过了 WinZIP 的最高压缩比,比 WinRAR 的最高压缩比仅仅查一点点而已,我测试过,大概相差不到 1%。
================================================
PS:想用WZ原创SOFT又没WZ的ID的朋友顶顶…:q58;…
[
本帖最后由 暖锋吹过 于 2006-11-2 05:52 PM 编辑
]
作者:
暖锋吹过
时间:
2006-11-2 17:55
我使用的是一个explorer程序!不知道做出来的会不会有错误,到时候解不出来!
最开始不知道用rar压缩改扩展名来者,结果不能用!
作者:
fly2sky
时间:
2006-11-2 18:15
将以下的文本保存成cab.cmd,然后执行该批命令文件来压缩,用法看批命令里面的
rem 代码开始
@echo off>nul
rem 使用方法:
rem cab 源目录 输出目录 目标文件名
rem %1 源目录 %2输出目录 %3目标文件名
if "%1"=="" goto Use
if "%2"=="" goto Use
if "%3"=="" goto Use
if NOT EXIST %2 MD %2
@echo .Set CabinetNameTemplate=%2\%3>%temp%\tmp.lst
@echo .Set CompressionType=LZX>>%temp%\tmp.lst
@echo .Set CompressionMemory=21>>%temp%\tmp.lst
@echo .Set InfFileName=%2\setup.inf>>%temp%\tmp.lst
@echo .Set RptFileName=%2\setup.rpt>>%temp%\tmp.lst
@echo .Set MaxDiskSize=CDROM>>%temp%\tmp.lst
@echo .Set ReservePerCabinetSize=6144>>%temp%\tmp.lst
@echo .Set InfCabinetLineFormat=*cab#*=Application Source Media,*cabfile*,0 >>%temp%\tmp.lst
@echo .Set Compress=on>>%temp%\tmp.lst
@echo .Set CompressionMemory=21>>%temp%\tmp.lst
@echo .Set DiskDirectoryTemplate=>>%temp%\tmp.lst
@echo .Set Cabinet=ON>>%temp%\tmp.lst
@echo .Set MaxCabinetSize=999999999>>%temp%\tmp.lst
@echo .Set InfDiskHeader=>>%temp%\tmp.lst
@echo .Set InfDiskLineFormat=>>%temp%\tmp.lst
@echo .Set InfCabinetHeader=[SourceDisksNames]>>%temp%\tmp.lst
@echo .Set InfFileHeader=>>%temp%\tmp.lst
@echo .Set InfFileHeader1=[SourceDisksFiles]>>%temp%\tmp.lst
@echo .Set InfFileLineFormat=*file*=*cab#*,,*size*,*csum*>>%temp%\tmp.lst
for %%a in (%1\*.*) do @echo %%a>>%temp%\tmp.lst
makecab /f %temp%\tmp.lst
goto ext
:use
cls
@echo.
echo.
echo 使用方法:
@echo cab 源目录 输出目录 目标文件名
@echo.
:ext
@echo on
rem 代码结束
作者:
老毛桃
时间:
2006-11-2 18:23
看看这个吧
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=77522
作者:
暖锋吹过
时间:
2006-11-2 18:29
感谢!
作者:
peter1123
时间:
2006-11-5 13:27
iexpress
用这个
作者:
jasonwang
时间:
2006-11-9 16:44
我的CAB压出来的包比RAR还要小啊,原文件9M,CAB压完了7.1M,RAR压完了7.4M
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3