---
name: compress-toolkit
slug: compress-toolkit
version: 0.1.0
displayName: 压缩解压工具
summary: zip/tar.gz 压缩解压、大文件分卷合并、批量解压，zip 中文文件名自动修复。
description: "压缩解压工具——当用户提到：压缩文件、打包、zip 压缩、解压、批量解压、解压文件、文件太大发不出去、分卷压缩、大文件切分、合并分卷、rar 解压等场景时触发。支持 zip（含中文文件名修复）/tar.gz/tgz，rar 与 7z 自动检测系统 7-Zip；大文件按大小分卷切分并可字节级还原合并；批量解压目录下所有压缩包到同名子目录。"
author: "rushi-skill (@user_3df04d3b)"
license: MIT
copyright: © 2026 rushi-skill (@user_3df04d3b)
tags: [压缩, 解压, 分卷, 文件打包, 效率工具]
---

# 压缩解压工具

你是一个**可靠的文件打包助手**：压缩、解压、分卷一条龙。核心原则：**中文文件名零乱码、分卷必字节级还原、rar 缺工具时诚实说明**。

## 环境准备

```bash
PY="<venv 路径>/python.exe"
"$PY" <skill目录>/scripts/compress_cli.py <子命令> [参数]
```

## 五个子命令（全部实测通过）

### 1. zip — 压缩

```bash
# 压缩目录（递归，自动跳过隐藏文件）
compress_cli.py zip "D:/项目资料" -o "D:/项目资料.zip"
# 压缩单文件，指定压缩级别 1-9（默认 6）
compress_cli.py zip "D:/大文件.iso" --level 9
```

实测输出示例：
```
✓ 已压缩 2 个文件 -> C:/Temp/src.zip
  原始 25B -> 292B（小文件压缩后因 zip 容器开销略变大，属正常现象）
```
压缩率 ≥5% 才显示百分比；小文件变大会诚实提示（zip 容器有固定开销，几百字节以下的文件压缩后反而更大是正常现象）。

### 2. unzip — 解压（自动识别格式）

```bash
compress_cli.py unzip "D:/资料.zip"              # 解到 资料/
compress_cli.py unzip "D:/备份.tar.gz" -o "D:/out"
compress_cli.py unzip "D:/素材.rar"              # 自动调用 7-Zip
```

- **zip 中文文件名自动修复**：老压缩包在 Windows 上的 GBK 乱码文件名（`娴嬭瘯.txt` 之类）会自动还原
- rar/7z 依赖系统 7-Zip（检测 `C:\Program Files\7-Zip\7z.exe`），未安装时给出明确提示而不是报错崩溃

### 3. batch-unzip — 批量解压

```bash
compress_cli.py batch-unzip "D:/压缩包们"
```

目录下所有 zip/tar.gz/rar/7z 各解到同名子目录；逐个报告成功/失败，单个坏包不影响其他。

### 4. split — 大文件分卷

```bash
compress_cli.py split "D:/视频.iso" -s 100        # 每卷 100MB（默认）
compress_cli.py split "D:/视频.iso" -s 500 -o "D:/parts"
```

输出 `视频.iso.part000 / part001 / ...`，并直接打印还原命令。

### 5. merge — 合并分卷还原

```bash
compress_cli.py merge "D:/parts/视频.iso.part000" -o "D:/视频.iso"
```

实测 3MB 文件切 3 卷再合并，`cmp` 字节级一致。

## 工作流建议

| 场景 | 命令组合 |
|------|----------|
| 发邮件超附件限制 | zip（level 9）→ 还超限则 split 分卷 |
| 下载了一堆压缩包 | batch-unzip 一次全解 |
| 收到乱码名 zip | unzip 自动修复中文名 |
| 微信传大视频 | split -s 400（微信文件 1GB 内）→ 对端 merge 还原 |

## 自检清单

1. 输出路径的父目录存在（或明确说明将创建）
2. rar/7z 任务前确认系统装了 7-Zip（没有就先提示用户安装）
3. 分卷还原后建议核对文件大小是否与原始一致
4. 中文文件名解压后抽查一个是否正常
