7-Zip命令行使用指南

一、核心概念

7-Zip是一款开源的文件压缩工具,提供强大的命令行功能。7z.exe是7-Zip的命令行版本,依赖其他模块;7za.exe是独立版本,仅支持7z、zip、gzip、bzip2和tar格式,不调用其他模块。

二、基本语法

2.1 命令格式

1
7z [命令] [[选项]...] [基本档案名称] [[参数变量]...]

参数说明:

  • 命令:执行的操作(如a添加、x解压等)
  • 选项:控制命令行为的参数
  • 基本档案名称:压缩档案的文件名
  • 参数变量:要处理的文件或通配符

2.2 常用示例

1
2
3
4
5
# 压缩文件,设置密码为111
7z a -tzip -p111 archive.7z txt.txt

# 解压文件,使用密码111
7z x -tzip -p111 archive.7z

三、核心命令详解

3.1 添加文件 (a)

添加文件到压缩档案。

1
2
3
4
5
6
7
8
# 基本用法
7z a archive.zip file1.txt file2.txt

# 添加目录下所有文件
7z a -tzip archive.zip subdir\*

# 递归添加Program files目录
7z a -tzip Files.zip "Program files\*" -r

相关选项: -i, -m, -p, -r, -t, -u, -w, -x

3.2 解压文件 (e/x)

从压缩档案中释放文件。

1
2
3
4
5
6
7
8
9
# 释放到当前目录(不保留路径)
7z e archive.zip

# 释放到指定目录
7z e archive.zip -oc:\soft *.cpp

# 完整路径释放
7z x archive.zip
7z x archive.zip -oc:\soft *.cpp

区别:

  • e命令:将所有文件释放到同一目录
  • x命令:保持原始目录结构

相关选项: -ao, -i, -o, -p, -r, -x, -y

3.3 列表查看 (l)

列出压缩档案内容。

1
7z l archive.zip

相关选项: -i, -r, -x

3.4 测试完整性 (t)

测试压缩档案文件的完整性。

1
7z t archive.zip *.doc

相关选项: -i, -r, -p, -x

3.5 删除文件 (d)

从压缩档案删除文件。

1
7z d archive.zip *.bak

相关选项: -i, -m, -p, -r, -u, -w, -x

3.6 更新文件 (u)

在压缩档案中更新较新的文件。

1
7z u archive.zip *.doc

相关选项: -i, -m, -p, -r, -t, -u, -w, -x

四、重要选项详解

4.1 密码设置 (-p)

设置压缩档案密码。

1
2
3
4
5
# 设置密码
7z a archive.zip -pMyPassword file.txt

# 解压带密码的文件
7z x archive.zip -pMyPassword

4.2 递归操作 (-r)

控制目录递归处理。

1
2
3
4
5
6
7
8
# 开启递归(默认)
7z a archive.zip -r *.txt

# 关闭递归
7z a archive.zip -r- *.txt

# 仅对通配符递归
7z a archive.zip -r0 *.txt

4.3 压缩类型 (-t)

指定压缩档案格式。

1
2
3
4
5
6
7
8
# 创建ZIP格式
7z a -tzip archive.zip *.txt

# 创建7Z格式(默认)
7z a -t7z archive.7z *.txt

# 创建GZIP格式
7z a -tgzip archive.gz *.txt

4.4 输出目录 (-o)

设置解压输出目录。

1
7z x archive.zip -oc:\output

4.5 覆盖模式 (-ao)

控制文件覆盖行为。

1
2
3
4
5
6
7
8
9
10
11
# 直接覆盖(无提示)
7z x archive.zip -aoa

# 跳过现有文件
7z x archive.zip -aos

# 自动重命名新文件
7z x archive.zip -aou

# 自动重命名旧文件
7z x archive.zip -aot

4.6 包含/排除文件 (-i/-x)

1
2
3
4
5
6
7
8
# 包含特定文件
7z a archive.zip -i!*.txt -i!*.doc

# 排除特定文件
7z a archive.zip -x!temp.* -x!*.bak

# 使用文件列表
7z a archive.zip @filelist.txt

五、高级功能

5.1 自解压档案 (-sfx)

创建自解压可执行文件。

1
2
3
4
5
6
7
8
# 创建Windows自解压文件
7z a -sfx7zC.sfx archive.exe *.txt

# 创建命令行自解压文件
7z a -sfx7zCon.sfx archive.exe *.txt

# 创建安装程序
copy /b 7zS.sfx + config.txt + archive.7z installer.exe

自解压模块:

  • 7zC.sfx:Windows图形界面版本
  • 7zCon.sfx:命令行版本
  • 7zS.sfx:Windows安装版本
  • 7zSD.sfx:Windows安装版本(需MSVCRT.dll)

5.2 分卷压缩 (-v)

创建分卷压缩档案。

1
2
3
4
5
# 创建10MB分卷
7z a archive.7z *.iso -v10m

# 创建不同大小的分卷
7z a archive.7z *.txt -v10k -v15k -v2m

5.3 压缩算法设置 (-m)

自定义压缩参数。

1
2
3
4
5
6
7
8
9
10
11
# 设置压缩等级(0-9)
7z a archive.7z *.txt -mx=9

# 使用PPMd算法(适合文本)
7z a archive.7z *.txt -m0=PPMd

# 使用LZMA算法(默认)
7z a archive.7z *.exe -m0=BCJ -m1=LZMA:d=21

# 不压缩(仅存储)
7z a archive.zip *.jpg -m0=Copy

5.4 标准输入输出 (-si/-so)

1
2
3
4
5
# 从标准输入压缩
7z a archive.gz -tgzip -si < input.txt

# 解压到标准输出
7z x archive.gz -so > output.txt

六、实用技巧

6.1 通配符使用

1
2
3
4
5
6
7
8
9
10
11
# 所有.txt文件
7z a archive.zip *.txt

# 第二个字母为a的文件
7z a archive.zip ?a*

# 包含数字1的文件
7z a archive.zip *1*

# 双扩展名文件
7z a archive.zip *.*.*

6.2 文件列表管理

创建filelist.txt

1
2
"My programs\*.cpp"
Src\*.cpp

使用文件列表:

1
7z a -tzip archive.zip @filelist.txt

6.3 批量操作

1
2
3
4
5
# 批量压缩当前目录所有文件夹
for /d %i in (*) do 7z a "%~ni.7z" "%i\"

# 批量解压所有ZIP文件
for %i in (*.zip) do 7z x "%i"

七、常见问题解决

7.1 中文路径问题

1
2
3
4
5
# 使用引号包裹含空格的路径
7z a "archive.zip" "My Documents\*.doc"

# 或使用短路径
7z a archive.zip MyDocu~1\*.doc

7.2 权限问题

1
2
# 以管理员身份运行
runas /user:Administrator "7z a archive.zip C:\Windows\*.log"

7.3 大文件处理

1
2
3
4
5
# 使用64位版本处理大文件
7z-x64 a archive.7z largefile.iso

# 分卷压缩大文件
7z a archive.7z largefile.iso -v1g

八、性能优化

8.1 多线程压缩

1
2
# 启用多线程(仅LZMA算法)
7z a archive.7z *.iso -mmt=on

8.2 内存优化

1
2
3
# 调整字典大小
7z a archive.7z *.txt -m0=LZMA:d=24 # 16MB字典
7z a archive.7z *.txt -m0=LZMA:d=26 # 64MB字典

8.3 压缩比优化

1
2
3
4
5
# 极限压缩
7z a archive.7z *.txt -mx=9 -m0=LZMA:d=32

# 固实压缩(提高压缩比)
7z a archive.7z *.txt -ms=on

九、实际应用示例

9.1 备份目录

1
2
# 备份Documents目录,排除临时文件
7z a "Backup-%DATE%.7z" "C:\Users\%USERNAME%\Documents\*" -x!*.tmp -x!*.temp -mx=5

9.2 日志文件归档

1
2
# 压缩30天前的日志文件
forfiles /p "C:\Logs" /m *.log /d -30 /c "cmd /c 7z a Logs-Archive.7z @path"

9.3 网站文件打包

1
2
# 打包网站文件,排除缓存和临时文件
7z a website-backup.7z "C:\Websites\*" -r -x!*.cache -x!*.tmp -x!Thumbs.db -mx=7

十、总结

7-Zip命令行工具功能强大且灵活,掌握其使用方法可以大大提高文件处理效率。关键要点:

  1. 基本命令:a(添加)、x(解压)、l(列表)、t(测试)
  2. 重要选项:-p(密码)、-r(递归)、-t(格式)、-o(输出)
  3. 高级功能:-sfx(自解压)、-v(分卷)、-m(算法)
  4. 性能优化:合理使用多线程和内存设置

通过组合不同的命令和选项,可以满足各种复杂的文件压缩和解压需求。


相关资源: