无忧启动论坛

标题: [求助]解开的cab要怎么样才能重新打包(光盘封装) [打印本页]

作者: chinaren12    时间: 2005-5-27 09:48
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
各位兄弟,
我想做个xp的精简版,然后我要修改xp的启动画面,
在论坛里看到说要把sp1.cab中的NTOSKRNL.EX_修改,
于是我把SP1.CAB解压,然后修改了,但是现在的问题就是
怎么把这些文件重新打包呢?
SP1.CAB中有120多个文件呀,
用什么工具可以把这些文件重新打包成原来的样子呢?
用CABARC还是MAKECAB,(我有120个文件呀,要打包到一个CAB包里面)
不知道各位是怎么处理的呢?
作者: chinaren12    时间: 2005-5-27 11:14
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
斑竹救命呀,
来看看吧
作者: zj    时间: 2005-5-27 11:36
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
用xp自带的iexpress就行了
作者: chinaren12    时间: 2005-5-27 12:48
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
我这个就是用IEXPRESS打的,不过是命令行工具而已!
但是我想知道原来的CAB是用什么工具打包的?
作者: 天风    时间: 2005-5-27 12:57
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
I386目录有MAKECAB.EXE
作者: nanrenganba    时间: 2005-5-27 13:53
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
[这个贴子最后由nanrenganba在 2005/05/27 01:57pm 第 1 次编辑]

【转贴】
cab 文件自定义方法:
1. 将 cabarc.exe和 "示例.cab" 以及cab中的文件(这里应该是指你自己更新后的文件)放至同一文件夹(假定压缩包内有 1.txt、2.txt、3.txt三个文件)
2.运行命令 cabarc l "示例.cab" >list.txt 导出cab文件信息(主要是得到文件排序-重要!)
例如:(删除其他非必要信息后...)
-----------------
2.txt
3.txt
1.txt
------------------
3. cabarc -m LZX:21 n "更新.CAB" @list.txt (重点:一定要保持原压缩包文件排序,非1.2.3.)
4.即可在目录里生成"更新.cab"文件(然后呢?改名!呵呵,估计是这样)
说明:cabarc.exe在XP安装盘的 SUPPORT\TOOLS目录下的support.cab中有。
具体使用方法我也没用过,是转贴的,添加了点注释,感觉应该不难理解。上面的是个例子,楼主可以自己研究一下
作者: chinaren12    时间: 2005-5-27 14:26
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
下面引用由hnlyzhd2005/05/27 12:57pm 发表的内容:
I386目录有MAKECAB.EXE

斑竹,MAKECAB不可以将很多文件打到一个包里面的,只能一个文件压成一个文件的.
作者: 老毛桃    时间: 2005-5-27 18:42
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
[这个贴子最后由老毛桃在 2005/05/27 06:49pm 第 3 次编辑]
下面引用由chinaren122005/05/27 02:26pm 发表的内容:
斑竹,MAKECAB不可以将很多文件打到一个包里面的,只能一个文件压成一个文件的.
你可以制作这样一个批处理文件,如 GetCAB.CMD,内容如下:
@echo off
echo 正在获取文件夹信息。。。
title=正在获取文件夹信息。。。
if not exist files goto ERR1
rem 此处“files”是待压缩的文件存放路径
dir files /b >drvtmp1.txt                  
echo 正在设置压缩环境变量。。。
title=正在设置压缩环境变量。。。
echo .Set CompressionType=LZX >drvtmp2.txt
echo .Set CompressionMemory=21 >>drvtmp2.txt
echo .Set Cabinet=ON >>drvtmp2.txt
echo .Set Compress=ON >>drvtmp2.txt
echo .Set CabinetNameTemplate=MyCAB.CAB >>drvtmp2.txt
rem 可以命名为别的文件名,如MyFile.CAB
echo .Set DiskDirectory1=.\ >>drvtmp2.txt
echo .Set MaxDiskSize=CDROM >>drvtmp2.txt
echo 正在获取当前路径信息。。。
title=正在获取当前路径信息。。。
cd >drvphstr.txt
for /f %%1 in (drvphstr.txt) do set drvpath=%%1\files
for /f %%1 in (drvtmp1.txt) do echo "%drvpath%\%%1" >>drvtmp2.txt
echo 正在准备制作压缩包。。。
title=正在准备制作压缩包。。。
makecab /f drvtmp2.txt
title=完成
del drvphstr.txt /f
del drvtmp1.txt /f
del drvtmp2.txt /f
rd files /s /q
if exist setup.inf del setup.inf /f
if exist setup.rpt del setup.rpt /f
echo 请输入任意键退出。。。
pause >nul
exit
:ERR1
echo 程序找不到你要压缩的文件夹
echo 请输入任意键退出。。。
pause >nul
exit

将要压缩的文件放到 files 文件夹中(这里需要提醒一下要注意长文件名和长目录名的问题要尽量避免,批处理可能不会识别或出错),然后将 GetCAB.CMD 与 files 文件夹放到同一个文件夹中(GetCAB.CMD 与 files 文件夹平级),运行 GetCAB.CMD 即可,如果不想在压缩后删除 files 文件夹,将相应行 rem 掉即可。
作者: chinaren12    时间: 2005-5-27 22:07
标题: [求助]解开的cab要怎么样才能重新打包(光盘封装)
老毛桃 的主意不错,我试试先,
谢谢了




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3