查看: 1933|回复: 8
收起左侧

[软件] 如何运用makecab命令打包目录和文件

[复制链接]
xzykgc4mc3
发表于 2022-1-29 21:45:50 | 显示全部楼层 |阅读模式
本帖最后由 xzykgc4mc3 于 2022-1-29 22:16 编辑

如题,类似以下的目录结构,有一个目录DesktopBackground,一个文件ESET 52 W.theme


最后打包成一个cab文件,要求打开时,就是如上面的结构。
据我所知,系统自带命令makecab.exe可以实现。不过是命令行软件,而且需要打包目录,所以先要建立一个ddf后缀的文件。具体说明,这里有https://docs.microsoft.com/en-us ... ws-commands/makecab
但这个ddf后缀的文件似乎选项很多,看不太明白。比如其中的DiskDirectoryn=directory、DiskDirectoryTemplate=template有什么不同。而且与命令行里的/l <dir>     Location to place destination (default is current directory).有什么不同
  1. DestinationDir=path
  2. DiskDirectoryn=directory
  3. DiskLabeln=label
  4. DiskDirectoryTemplate=template
  5. .Set Cabinet=On
  6. .Set Compress=On
  7. .Set SourceDir
复制代码

最后,通过搜索,还有两个文件可以实现此功能
分别是cabpck。这软件虽然还有效,但界面居然是win98风格,断更了
还有CabMakerhttps://github.com/sapientcoder/CabMaker
不过,通过测试,总是失效


提示
  1. ERROR: (FCIFlushCabinet)Failure creating or writing cabinet file: <unknown C run-time error>
复制代码
大佬,有没有什么办法呢





YorkWaugh
发表于 2022-1-29 21:55:42 | 显示全部楼层
<unknown C run-time error>

我的直觉告诉我,你运行库没装好
xzykgc4mc3
 楼主| 发表于 2022-1-29 22:07:59 | 显示全部楼层
YorkWaugh 发表于 2022-1-29 21:55
我的直觉告诉我,你运行库没装好

回官网看了,貌似还要.NETFramework,Version=v4.5
洒家电脑里只有Microsoft Windows Desktop Runtime -6.0.1 (x64)
xzykgc4mc3
 楼主| 发表于 2022-1-29 22:13:35 | 显示全部楼层
YorkWaugh 发表于 2022-1-29 21:55
我的直觉告诉我,你运行库没装好

实际上,洒家除CabMaker遇到失败,其他两种方式都基本实现目的了。
主要是洒家更想用makecab命令实现。然后ddf文件里一连串参数,看得眼晕
  1. ; Diamond Directive File created by CabPack

  2. .Set FailOnMissingSource=On
  3. .Set MaxErrors=1
  4. .Set UniqueFiles=Off
  5. .Set Cabinet=Off
  6. .Set Compress=Off
  7. .Set CompressionType=MSZIP
  8. .Set MaxDiskSize=2147483136
  9. .Set DiskDirectoryTemplate=c:\Users\用户名\Desktop
  10. .Set CabinetNameTemplate=eset.cab
  11. .Set Cabinet=On
  12. .Set Compress=On
  13. .Set SourceDir="C:\Users\用户名\Desktop\eset"
  14. "DesktopBackground\eset_logo_1.jpg" "DesktopBackground\eset_logo_1.jpg"
  15. "DesktopBackground\eset_logo_10.jpg" "DesktopBackground\eset_logo_10.jpg"
  16. "DesktopBackground\eset_logo_11.jpg" "DesktopBackground\eset_logo_11.jpg"
  17. "DesktopBackground\eset_logo_2.jpg" "DesktopBackground\eset_logo_2.jpg"
  18. "DesktopBackground\eset_logo_3.jpg" "DesktopBackground\eset_logo_3.jpg"
  19. "DesktopBackground\eset_logo_4.jpg" "DesktopBackground\eset_logo_4.jpg"
  20. "DesktopBackground\eset_logo_5.jpg" "DesktopBackground\eset_logo_5.jpg"
  21. "DesktopBackground\eset_logo_6.jpg" "DesktopBackground\eset_logo_6.jpg"
  22. "DesktopBackground\eset_logo_7.jpg" "DesktopBackground\eset_logo_7.jpg"
  23. "DesktopBackground\eset_logo_8.jpg" "DesktopBackground\eset_logo_8.jpg"
  24. "DesktopBackground\eset_logo_9.jpg" "DesktopBackground\eset_logo_9.jpg"
  25. "DesktopBackground\eset_neutral_01.jpg" "DesktopBackground\eset_neutral_01.jpg"
  26. "ESET 52 W.theme" "ESET 52 W.theme"
复制代码

YorkWaugh
发表于 2022-1-29 22:23:56 | 显示全部楼层
xzykgc4mc3 发表于 2022-1-29 22:13
实际上,洒家除CabMaker遇到失败,其他两种方式都基本实现目的了。
主要是洒家更想用makecab命令实现。 ...

你这属于闲得慌,能弄起来还管辣么多干嘛

https://www.cnblogs.com/feiquan/p/10652686.html
xzykgc4mc3
 楼主| 发表于 2022-1-29 22:33:24 | 显示全部楼层
YorkWaugh 发表于 2022-1-29 22:23
你这属于闲得慌,能弄起来还管辣么多干嘛

https://www.cnblogs.com/feiquan/p/10652686.html

这些,洒家看过。里面的那串命令,会把主目录下所有的文件全部打包一起。会改变主目录下的文件结构
但洒家想要保持主目录下的文件结构。即一个子目录,一个文件

YorkWaugh
发表于 2022-1-29 22:48:44 | 显示全部楼层
xzykgc4mc3 发表于 2022-1-29 22:33
这些,洒家看过。里面的那串命令,会把主目录下所有的文件全部打包一起。会改变主目录下的文件结构
但洒 ...
  1. .Set SourceDir="C:\Users\用户名\Desktop\eset"
  2. "DesktopBackground\eset_logo_1.jpg" "DesktopBackground\eset_logo_1.jpg"
  3. "DesktopBackground\eset_logo_10.jpg" "DesktopBackground\eset_logo_10.jpg"
  4. "DesktopBackground\eset_logo_11.jpg" "DesktopBackground\eset_logo_11.jpg"
  5. "DesktopBackground\eset_logo_2.jpg" "DesktopBackground\eset_logo_2.jpg"
  6. "DesktopBackground\eset_logo_3.jpg" "DesktopBackground\eset_logo_3.jpg"
  7. "DesktopBackground\eset_logo_4.jpg" "DesktopBackground\eset_logo_4.jpg"
  8. "DesktopBackground\eset_logo_5.jpg" "DesktopBackground\eset_logo_5.jpg"
  9. "DesktopBackground\eset_logo_6.jpg" "DesktopBackground\eset_logo_6.jpg"
  10. "DesktopBackground\eset_logo_7.jpg" "DesktopBackground\eset_logo_7.jpg"
  11. "DesktopBackground\eset_logo_8.jpg" "DesktopBackground\eset_logo_8.jpg"
  12. "DesktopBackground\eset_logo_9.jpg" "DesktopBackground\eset_logo_9.jpg"
  13. "DesktopBackground\eset_neutral_01.jpg" "DesktopBackground\eset_neutral_01.jpg"
  14. "ESET 52 W.theme" "ESET 52 W.theme"
复制代码


就是这一段指定CAD包内文件名和原始文件的对应关系吧。。。
xzykgc4mc3
 楼主| 发表于 2022-1-29 22:56:14 | 显示全部楼层
YorkWaugh 发表于 2022-1-29 22:48
就是这一段指定CAD包内文件名和原始文件的对应关系吧。。。

乃说是CAb包内文件名和原始文件的对应,可能是有道理
当时想不明白,为什么会最后的路径会重复两次
mifanu
发表于 2022-1-29 23:06:24 | 显示全部楼层
rar不行么。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-24 07:25 , Processed in 0.127189 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表