软件吧
登录注册账号
/posts/win-7-zip-mvpg1w88-600c
电脑必备

用脚本批量解压部署包,Win解压缩和7-Zip的耗时差我记了张表

码农小张 78 0 13

最近赶上版本发布,手头堆了 300 多个部署包,单个 200MB 上下,全是 zip。正好拿这个场景把 Win解压缩和 7-Zip 在命令行下的表现对了一遍,数据如下,机器是 i7-12700 + 32G + NVMe,系统 Win11 23H2,Win解压缩 5.2.1,7-Zip 24.07。

测试方法

  • 写了个 bat 循环,逐个解压到独立目录,排除人为点击的干扰
  • 每轮跑完清空目标目录,冷启动三次取中位数
  • 两个工具都走命令行参数,不碰 GUI

结果

项目Win解压缩7-Zip
300 包总耗时6分42秒7分58秒
单包平均1.34秒1.59秒
命令行参数完整度基础解压够用分卷/密码/排除规则齐全
出错时返回码部分场景不返回稳定返回

结论很直接:纯解压速度 Win解压缩确实快一截,大概快 15% 左右,跟它宣传的差不多。但问题出在脚本化的边界上。

踩坑细节

  1. 批量循环里遇到一个损坏包,7-Zip 返回非零码,我的脚本能立刻跳过并记日志;Win解压缩这边有两次没给返回码,脚本以为成功,后面校验 md5 才发现文件是残的。
  2. 带密码的包,7-Zip 用 -p 直接传,Win解压缩命令行对密码参数的文档写得含糊,试了几次才摸对格式。
  3. 需要排除某个目录(比如 __MACOSX)的时候,7-Zip 一条 -x 搞定,Win解压缩没找到对应参数,只能先全解再删,等于白解一遍。

我的判断

如果是普通用户,双击解压、看看文件,Win解压缩的速度优势是实打实的,装上不亏。但只要进了脚本、进了 CI、进了批量部署这条线,命令行支持的完整度和错误处理才是命门,这方面 7-Zip 还是稳。我现在是两台工具都留着:日常手动解压用 Win解压缩,脚本和流水线里一律 7-Zip。

顺带一提,同样这批包,用 WinRAR 跑了一遍是 9 分出头,就不展开了。

问一句:你们在 CI 或者批量部署脚本里解压,是认准一个工具还是按场景混着用?有没有人拿 Win解压缩的命令行跑过带分卷的包,返回码这块稳不稳?

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

社区回应

0 Replies

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

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