我可以使用Windows工具 Expand.exe 成功提取Cabinet文件(.cab)。
Expand.exe foo.cab -F:*
我现在想修改一些提取的文件,并从目录结构重建一个Cabinet文件。
我找到了 MakeCab.exe 和 CabArc.exe 并尝试了 MakeCab.exe ,但它无效。 (在不同的子目录中有几个具有相同名称的文件,MakeCab.exe不喜欢这样。但目录结构和文件来自一个Cabinet文件,所以它必须以某种方式工作。)
为了提取我还尝试了Linux工具 cabextract ,它为我提供了另一个输出,提取的文件/目录更少。 所以我假设Cabinet文件中的文件也被存档, Expand.exe 也提取它们。
那么如何提取,修改和重建Cabinet文件?
(Cabinet文件来自WSUS / Windows Update。)
答案 0 :(得分:2)
您可以在cmd中使用makecab.exe制作cab文件,如果您有多个文件,则可以使用makecab文件指令将文件添加到.cab文件中。
makecab /f name.ddf
指令文件(.ddf)是
.Set CabinetNameTemplate=cabName.cab
.Set SourceDir=PathWhereYouWantToMakeCab
.Set Cabinet=on
.Set Compress=on
"file1name.txt"
"file2.name.txt"
答案 1 :(得分:1)
不支持修改Windows Update(WU)CAB。您从WU下载的CAB文件由Microsoft进行数字签名,如果签名无效,Windows将拒绝安装它们。此外,在没有特殊配置的情况下,WSUS服务器还将实现CAB文件的修改,并从上游服务器或MU重新下载新的副本。
答案 2 :(得分:1)
令我惊讶的是,似乎ACD的一个软件:ACDzip(现已停止的程序) CAN MODIFY .CAB文件。
答案 3 :(得分:0)
我建议MakeCab.exe是创建cabinet文件的最佳工具。 您应该重命名源文件。
答案 4 :(得分:0)
请参阅我对这个问题的回答: C#/.NET: Creating a CAB and adding files to it without an external library
但是,正如BenH在他的回答中指出的那样,生成的cab文件不能用作替代的WU cab文件。但是,如果您要访问的是WU cab文件中的文件和文件夹,例如DLL或驱动程序文件等,那么我描述的方法应该可以帮助您。
对于我链接的答案中的方法,请注意,CabMaker应用程序是MakeCab程序周围的GUI包装程序,可为您处理DDF文件创建和MakeCab命令行创建。下面是CabMaker GUI的外观。