软件吧
登录注册账号
/posts/win-mvzszr9s-802c
电脑必备

对比了五款解压工具的命令行,Win解压缩速度快但脚本里不敢用

码农小张 77 0 13

平时跑批处理解压日志包和部署包,命令行是硬需求,这两天把手头几台机器上的解压工具挨个拉出来对了一轮,说下结论。

测试环境:Win10 22H2、Win11 23H2、Server 2019 各一台,同一个 2.3G 的日志压缩包(含 4 万多个小文件),同一个 800M 的部署包(zip 和 7z 各一份)。

测下来的数据:

  • Win解压缩:图形界面下解 2.3G 那个包平均 48 秒,确实快,比 7-Zip 快大概 15%。但命令行参数少得可怜,我只找到最基础的解压路径指定,批量加密码、按通配符过滤文件、静默覆盖这些都没有,写进脚本里要绕一大圈。
  • 7-Zip:同包平均 56 秒,速度慢一点,但 7z x -o -p -y 一套参数齐全,配合 for 循环批量处理几十个包很顺,日志包按日期过滤也只加一个 -i!*.log 的事。
  • 其余三款要么命令行文档不全,要么退出码返回不靠谱,脚本没法判断成功失败,直接排除。

我的判断:

  1. 普通用户日常解压,Win解压缩够用,速度快、界面简单,没什么可挑的。
  2. 但只要涉及脚本、批处理、定时任务,7-Zip 的命令行成熟度和退出码规范还是更稳,出错能捕获,不会静默失败。
  3. 我现在的做法是两套并存:手动解包用 Win解压缩,自动化流程里一律走 7-Zip,避免脚本里埋雷。

踩过的坑:之前图省事在批处理里调 Win解压缩,结果解压失败它不报错,脚本继续往下跑,部署包里缺了文件到第二天才发现,排查了半天。从那以后自动化链路里的工具必须能返回明确退出码。

顺带问一句:你们在脚本里解压带密码的批量日志包时,是怎么处理密码错误和文件损坏这两种情况的?我现在是解压前先做个完整性校验,但总觉得多了一步。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。