7zip 最快的 LZMA2 压缩

问题描述 投票:0回答:2

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

Screenshot of the options on archive creation

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 小时。我查看了文档,但我无法弄清楚。

batch-file command-line compression 7zip
2个回答
32
投票

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

7-Zip 附带帮助文件

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

7z [...] [...]

因此从这一行应该可以清楚地看出,所有开关都应在命令字符和存档文件名之间指定。稍后在命令行上也支持开关,但仍应避免在存档文件名右侧指定开关。

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

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

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

a
是命令 添加

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

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

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

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

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

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


0
投票

如果有人实际上从命令行获取了要工作的线程数,请发布您的命令行。我已经尝试了多种方法,包括此处给出的命令行的非常轻微修改的版本,无论我做什么,7z.exe 始终使用 4 个线程,不再使用。在 GUI 中进行设置效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.