You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在7-Zip命令行版本中仅禁用ARM64过滤器并兼容旧版本

如何在7-Zip命令行版本中仅禁用ARM64过滤器并兼容旧版本

我太懂你的痛点了——7-Zip 23.00新增的ARM64过滤器虽然能提升ARM64二进制文件的压缩率,但却给旧版本兼容性挖了个坑:旧版7-Zip会把ARM64过滤器识别成陌生的0A方法,看着就闹心。而且你试过的两个方案都不完美:-mf=off直接关掉所有过滤器,压缩率掉了不说,文件还变大了;-mf=BCJ2强制全局用BCJ2,虽然大小差不多,但速度反而慢了点,对于大量数据来说累积起来就很头疼。

精准解决:只禁用ARM64过滤器的正确姿势

其实7-Zip的命令行参数支持单独禁用某一个过滤器,你只需要在原有的压缩命令里加上这么一句:

-mf=-ARM64

这个参数的作用很明确:告诉7-Zip不要使用ARM64过滤器,但保留它原本的自动筛选逻辑——也就是对x86的exe/dll文件依然自动用BCJ或BCJ2过滤器,其他文件正常处理。这样一来,既回到了23.00版本之前的行为,完美兼容旧版7-Zip,又不会损失原本的压缩率和速度优势。

结合你原有命令的完整示例

把这个参数加到你一直在用的命令里,最终的完整命令是这样的:

7z a -t7z -mx=9 -myx=7 -mmt=on -mmtf=on -ms=on -mqs=on -mtm=off -mtc=off -mta=off -mtr=off -stl -mf=-ARM64 <你的输出压缩包路径> <要压缩的文件/目录>

效果对比验证

用这个命令压缩后,你会看到压缩方法变成了:

Method = LZMA2:26 LZMA:20 BCJ2 ARMT

和旧版7-Zip生成的压缩包方法完全一致,旧版本打开毫无问题;同时压缩速度和文件大小会和你原来不加额外参数的结果几乎持平——不会像-mf=off那样让文件涨到112MiB,也不会像-mf=BCJ2那样在速度上有不必要的损耗,完全符合你的需求。

小科普:-mf参数的灵活用法

其实7-Zip的-mf参数不止能开或关所有过滤器,它的用法很灵活:

  • mf=<过滤器名>:强制全局使用指定的过滤器
  • mf=-<过滤器名>:禁用指定的单个过滤器
  • 还可以组合使用,比如mf=-ARM64,-BCJ可以同时禁用ARM64和BCJ过滤器

我们这里只需要禁用ARM64,所以用-mf=-ARM64就足够了。

备注:内容来源于stack exchange,提问作者0xC0000022L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:27:58