7zip 最快的 LZMA2 压缩

7zip Fastest LZMA2 compression

如何将这些设置转换为命令?

Archiv format:7z
compression level: Fastest
Compression method: LZMA2
Dictionary size: 64kb
Word size: 32
Solid Block size: 8MB
Number of CPU threads: 30

我试过这个:

"7z.exe" a -t7z "F:\BACKUP" "D:\Source" -m0=LZMA2:d=64k

压缩很好,但需要三个小时,而不是使用 GUI 时的 1 小时。我查看了文档,但我无法理解。

这个问题在 Super User 上比在 Stack Overflow 上问得更好,因为它与编程无关,只是关于如何使用具有正确选项的命令行工具来完成任务。

7-Zip 自带帮助文件7-zip.chm,可以双击打开。在帮助选项卡 Contents 上有列表项 Command Line Version。要从命令行阅读 7-Zip 用法的第一个帮助页面是显示在顶部的 命令行语法

7z <command> [<switch>...] <base_archive_name> [<arguments>...]

所以从这一行应该很清楚,所有的开关都应该在命令的字符和存档文件名之间指定。稍后在命令行上也支持开关,但仍应避免指定存档文件名的开关权限。

帮助页面-m(设置压缩方式)开关确实不太好理解。这个帮助页面的底部有一些示例,但是语法解释得不是很清楚。

我认为与所需选项一起使用的命令行是:

"7z.exe" a -t7z -m0=LZMA2:d64k:fb32 -ms=8m -mmt=30 -mx=1 -- "F:\BACKUP" "D:\Source"

a 是命令 Add.

-t7z 将存档类型设置为 7-Zip。

-m0=LZMA2:d64k:fb32 定义使用 LZMA2 压缩方法,字典大小为 64 KB,字大小(快速字节)为 32。

-ms=8m 启用实体块大小为 8 MB 的实体模式。

-mmt=30 启用最多 30 个线程的多线程模式。

-mx=1 选择最快的压缩作为压缩级别。

-- 停止解析命令行其余部分的其他开关。