电脑必备
对比了五款解压工具的命令行,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的事。 - 其余三款要么命令行文档不全,要么退出码返回不靠谱,脚本没法判断成功失败,直接排除。
我的判断:
- 普通用户日常解压,Win解压缩够用,速度快、界面简单,没什么可挑的。
- 但只要涉及脚本、批处理、定时任务,7-Zip 的命令行成熟度和退出码规范还是更稳,出错能捕获,不会静默失败。
- 我现在的做法是两套并存:手动解包用 Win解压缩,自动化流程里一律走 7-Zip,避免脚本里埋雷。
踩过的坑:之前图省事在批处理里调 Win解压缩,结果解压失败它不报错,脚本继续往下跑,部署包里缺了文件到第二天才发现,排查了半天。从那以后自动化链路里的工具必须能返回明确退出码。
顺带问一句:你们在脚本里解压带密码的批量日志包时,是怎么处理密码错误和文件损坏这两种情况的?我现在是解压前先做个完整性校验,但总觉得多了一步。
登录后可以为帖子点赞,但本帖内容对所有人开放阅读。
