中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 支持多文件、文件夹拖放的CAB压缩
作者:
标题: 支持多文件、文件夹拖放的CAB压缩 上一主题 | 下一主题
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『楼 主』:  支持多文件、文件夹拖放的CAB压缩

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::运行环境2000、xp或更高 :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @Echo Off Title CAB文件夹最大压缩工具 Set Prestr=MAKECAB /v3 /D CompressionType=LZX /D CompressionMemory=21 /D MaxDiskSize=CDROM /D Cabinet=On /D Compress=On :begin Set fullname=%~1 Set dirpath=%~dp1 Set srcname=%~n1 if exist "%fullname%\" goto is_dir :is_file Set Cmdstr=%Prestr% "%fullname%" "%dirpath%%srcname%.CAB" %Cmdstr% Set Cmdstr= shift Set tmpstr=%1 if not %tmpstr%=="" goto begin goto end :is_dir Set Cmdstr=%Prestr% /D FolderSizeThreshold=5000000 /D DiskDirectoryTemplate="%dirpath%." /D CabinetNameTemplate="%srcname%.CAB" Set Tempfile=%TEMP%\mkcabtmp.tmp If Exist "%Tempfile%" Del "%Tempfile%" >NUL SETLOCAL ENABLEDELAYEDEXPANSION For /f "delims=" %%i In ('dir "%fullname%" /s /b /a-d') Do ( Set subname=%%i Set "subname=!subname:%fullname%\=!" Echo "%%i" "!subname!">>%Tempfile% ) ENDLOCAL %Cmdstr% /F %Tempfile% Del /F /S /Q "%Tempfile%" SETUP.INF SETUP.RPT >NUL Set Tempfile= Set Cmdstr= shift Set tmpstr=%1 if not %tmpstr%=="" goto begin :end Set tmpstr= Set srcname= Set dirpath= Set fullname= Set Prestr= [[i] Last edited by netwinxp on 2007-7-27 at 11:41 AM [/i]]


   此帖被 +7 点积分      点击查看详情   
评分人:【 wudixin96 分数: +5  时间:2007-7-27 11:40
评分人:【 afeichai 分数: +2  时间:2007-9-19 15:01


附件 1: maxmkcab.CAB (2007-7-27 11:40, 687 bytes,下载次数: 109)
2007-7-27 11:37
查看资料  发短消息  网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 2 楼』:  

压缩率比WINRAR最大压缩略高,每个对象比压缩成同名的CAB文件(原文件仍保留),大家用过有何BUG请反馈,谢谢先。


2007-7-27 11:46
查看资料  发短消息  网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

如果楼主用过微软原版光盘上的压缩工具,就该知道那才是压缩率高的。


2007-7-27 11:48
查看资料  发短消息  网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 4 楼』:  

这个本身就是调用微软的CAB制作工具(只不过makecab操作文件夹繁琐),并采用最大化压缩,没有理由会比它低。我们以office2000sch原装光盘里面的ofifice1.cab来做测试,原压缩包110M(115,385,377)内含252个文件,解压后210M(220,265,737)共252个文件,重新用上面的压缩后105M(110,611,933)内含252个文件,经解压进行文件对比,完全重合,用新压缩包替换老压缩包安装过程完全没问题。新包比原包少了5M,也就是说微软的原装包并不全是最大压缩。 [ Last edited by netwinxp on 2007-7-27 at 04:09 PM ]


2007-7-27 16:05
查看资料  发短消息  网志   编辑帖子  回复  引用回复
csx163
初级用户




积分 97
发帖 45
注册 2007-1-31
状态 离线
『第 5 楼』:  

LZ的程序确实能批量打包,不过打包后的路径和文件名加在一起了 如: D:外置程序PE_OUTERPART新建文件夹DRIVERS_NET3COM3c940_3c2000EL2000x.inf 其中的斜杠完全丢失 期待下个版本


2007-9-19 00:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 6 楼』:  

我靠,好东西 简单的测试了下:压缩大小是比WinRAR小,比7z的大 原文件111KB WinRAR 19.1KB (采用了最大压缩) 你的作品 14.6KB\14KB... 7z 13.1KB\12.1KB (采用最大压缩) [ Last edited by tireless on 2007-9-18 at 05:46 AM ]


2007-9-19 01:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复
afeichai
初级用户




积分 171
发帖 78
注册 2006-11-22
状态 离线
『第 7 楼』:  

这个不错,在无忧看过了


2007-9-19 14:59
查看资料  发短消息  网志   编辑帖子  回复  引用回复
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『第 8 楼』:  

楼主再写个解压的批处理啊


2007-12-14 20:33
查看资料  发短消息  网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 9 楼』:  

好加密的,就更好了. 但此工具,只好,被在同一磁盘下引用?????? [ Last edited by cad55 on 2007-12-15 at 10:58 AM ]


2007-12-15 09:47
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: