7-Zip 和 WinRAR 的对比分析,按不同的特性进行表格化:这些高级命令和技巧可以让你更灵活地使用 7-Zip,特别是在处理大量文件、自动化任务和进行压缩时。7-Zip 提供了非常多的定制选项,可以帮助你根据需求优化性能,提升工作效率。 7-Zip 的强大功能。无论是批量操作、加密保护、压缩算法的选择,还是自动化任务,7-Zip 都能够满足各种复杂需求。

7-Zip 和 WinRAR 的对比分析,按不同的特性进行表格化:

特性 7-Zip WinRAR
开发公司 7-Zip 由 Igor Pavlov 开发 WinRAR 由 RARLab 开发
支持的格式 支持 7z, ZIP, RAR, TAR, GZ, ISO 等 支持 RAR, ZIP, TAR, GZ, ISO 等
压缩比率 通常提供更高的压缩比率(尤其是 7z 格式) 压缩比率较高,但与 7-Zip 的 7z 格式相比略低
界面 简单、直观的界面 界面友好,功能丰富
可用性 免费、开源 免费试用(40 天),之后需要付费购买
压缩速度 比 WinRAR 快,尤其是在大文件时 快速,但比 7-Zip 稍慢
解压缩速度 快速且高效 非常快,尤其对 RAR 格式解压有优化
文件管理功能 基本的文件管理(复制、移动、删除等) 更加全面的文件管理功能
加密功能 支持 AES-256 位加密 支持 AES-256 位加密
多线程支持 支持多核处理,速度较快 也支持多线程,但效果略逊于 7-Zip
文件分卷压缩 支持分卷压缩(.7z 格式) 支持分卷压缩(.rar 格式)
文件恢复记录 支持文件恢复记录,减少数据丢失风险
平台支持 Windows, Linux, macOS 等 仅限 Windows(有非官方的 Linux 版本)
安装包大小 小(大约 2 MB) 较大(大约 3 MB)
文件损坏恢复 无内置修复功能 内置修复工具,可以修复损坏的 RAR 文件
语言支持 支持多种语言 支持多种语言
开源/闭源 开源 闭源
命令行支持 强大的命令行支持,功能丰富 支持命令行,但功能相对较弱
价格 免费 试用 40 天,之后需要购买许可证

 

  • 7-Zip 是一款免费的开源软件,提供更高的压缩比率和更广泛的格式支持,尤其是在使用 7z 格式时表现优秀。它支持多线程压缩、命令行操作、AES-256 加密,并且没有功能限制。然而,它的界面较为简单,缺少一些高级功能(如文件恢复记录)。

  • WinRAR 则是一款功能更为丰富的压缩工具,尤其在解压 RAR 文件时表现优秀。它提供了更强大的文件管理、文件损坏修复和恢复记录等功能,但需要付费购买许可证。

如果你看重 免费和高压缩比,7-Zip 是更好的选择;如果你需要 更加完善的用户体验、文件修复 以及长期的技术支持,WinRAR 可能更适合。


7-Zip 的命令行工具(7z.exe)非常强大,支持多种压缩、解压缩、加密、文件管理等功能。以下是 7-Zip 命令行功能的分类和常用选项:

1. 压缩文件

命令行最常见的功能是压缩文件,使用 a (Add)命令可以创建压缩档案。

语法:

bashCopy Code
7z a <档案名> <文件/文件夹>
  • a:添加文件到压缩档案。
  • <档案名>:压缩文件的名称和格式,如 archive.7z
  • <文件/文件夹>:要压缩的文件或文件夹。

示例:

bashCopy Code
7z a archive.7z *.txt

将当前目录下所有 .txt 文件压缩成 archive.7z

常用选项:

  • -t<格式>:指定压缩格式,如 -t7z-tzip-twar 等。
  • -p<密码>:设置压缩文件的密码加密。
  • -mx=<压缩等级>:设置压缩等级,范围从 0(最快)到 9(最慢,最高压缩比)。

示例:

bashCopy Code
7z a -tzip archive.zip *.txt -mx=9 -pMyPassword

.txt 文件压缩为 archive.zip,并设置密码保护,使用最高压缩比。


2. 解压文件

解压缩文件使用 xe 命令。

语法:

bashCopy Code
7z x <档案名> -o<目标路径>
  • x:解压文件,保留文件夹结构。
  • e:解压文件,解压到当前目录(不保留文件夹结构)。
  • -o<目标路径>:指定解压后的文件存放目录。

示例:

bashCopy Code
7z x archive.7z -oC:\Output\Folder

archive.7z 解压到 C:\Output\Folder 目录。


3. 查看压缩文件内容

可以查看压缩包中的文件列表,使用 l 命令。

语法:

bashCopy Code
7z l <档案名>
  • l:列出档案中的文件内容。

示例:

bashCopy Code
7z l archive.7z

列出 archive.7z 中的所有文件和文件夹。


4. 测试压缩文件的完整性

检查压缩包是否损坏,使用 t 命令。

语法:

bashCopy Code
7z t <档案名>
  • t:测试压缩包的完整性。

示例:

bashCopy Code
7z t archive.7z

检查 archive.7z 是否完整无损。


5. 更新压缩文件

向已存在的压缩包中添加文件或更新文件,使用 u 命令。

语法:

bashCopy Code
7z u <档案名> <文件/文件夹>
  • u:更新压缩档案(仅添加新文件或替换更新过的文件)。

示例:

bashCopy Code
7z u archive.7z newfile.txt

newfile.txt 文件添加到 archive.7z 中。


6. 分卷压缩

可以使用 -v<分卷大小> 参数进行分卷压缩,创建多个小的压缩文件。

语法:

bashCopy Code
7z a -v<分卷大小> <档案名> <文件/文件夹>
  • -v<分卷大小>:指定每个分卷的大小,例如 -v10m 表示每个分卷大小为 10MB。

示例:

bashCopy Code
7z a -v10m archive.7z *.txt

.txt 文件压缩并分成每个大小为 10MB 的多个分卷。


7. 加密压缩文件

可以在压缩时设置密码并加密文件内容,使用 -p 选项。

语法:

bashCopy Code
7z a <档案名> <文件/文件夹> -p<密码>
  • -p<密码>:设置压缩文件的密码。

示例:

bashCopy Code
7z a archive.7z secretfile.txt -pMySecretPassword

secretfile.txt 压缩到 archive.7z,并加密文件内容。


8. 删除文件或文件夹

可以从压缩档案中删除文件或文件夹,使用 d 命令。

语法:

bashCopy Code
7z d <档案名> <文件/文件夹>
  • d:删除压缩档案中的文件。

示例:

bashCopy Code
7z d archive.7z unwantedfile.txt

archive.7z 中删除 unwantedfile.txt


9. 命令行批处理脚本

7-Zip 的命令行工具支持批处理操作,可以通过脚本自动化文件压缩和解压操作。

示例:

bashCopy Code
for %%f in (*.txt) do 7z a "%%f.7z" "%%f"

此脚本会将当前文件夹下的所有 .txt 文件逐个压缩为 .7z 文件。


10. 文件恢复记录

7-Zip 也支持在压缩过程中创建恢复记录,用于修复损坏的文件。

语法:

bashCopy Code
7z a -m0=BCJ2 -mmt=on -p<密码> -rr <档案名> <文件/文件夹>
  • -rr:启用恢复记录。

示例:

bashCopy Code
7z a -rr archive.7z *.txt

启用恢复记录来压缩文件。


11. 命令行帮助

查看 7-Zip 命令行工具的帮助文档,使用 -h--help

语法:

bashCopy Code
7z -h

示例:

bashCopy Code
7z -h

显示 7-Zip 命令行的帮助信息,列出所有命令和选项。


 

7-Zip 的命令行工具提供了丰富的功能,可以进行压缩、解压、加密、分卷、文件管理等多种操作,且支持批处理、恢复记录和高级压缩选项。对于那些需要进行大规模文件处理或自动化任务的用户,7-Zip 的命令行工具是一个强大的选择。


深入探讨 7-Zip 的高级命令行技巧,我们可以涉及更多的定制化操作、自动化处理和性能优化。以下是一些更高阶的技巧:

1. 使用 -m0 参数优化压缩方法

-m0 参数允许指定更复杂的压缩算法。你可以选择不同的压缩方法(例如 BCJ2、LZMA、PPMD 等)来优化文件压缩比或压缩速度。

示例:

bashCopy Code
7z a archive.7z *.txt -m0=lzma2 -mx=9 -mmt=on
  • -m0=lzma2:使用 LZMA2 压缩方法。
  • -mx=9:使用最高压缩比。
  • -mmt=on:启用多线程。

2. 增量压缩

通过 -up0q1r2x1y2z1w2 参数,可以启用增量压缩,只对更新的文件进行压缩。

示例:

bashCopy Code
7z u archive.7z *.txt -up0q1r2x1y2z1w2

此命令会根据修改时间,仅压缩自上次压缩以来更新的文件。

3. 分卷压缩与自动恢复

结合分卷压缩和恢复记录,可以创建带有恢复功能的多卷压缩包,这对于大文件或不稳定网络环境非常有用。

示例:

bashCopy Code
7z a -v10m -m0=lzma2 -mx=9 -rr archive.7z *.mp4
  • -v10m:分割成每 10MB 的卷。
  • -rr:启用恢复记录。

4. 创建自解压档案(SFX)

使用 -sfx 参数,可以将压缩包转换为自解压档案(SFX),无需 7-Zip 客户端即可解压。

示例:

bashCopy Code
7z a -sfx7z.sfx archive.exe *.txt

.txt 文件压缩成 archive.exe,且文件成为自解压格式,适合在不安装 7-Zip 的机器上解压。

5. 自定义文件名和路径

使用 -aoa-aos-aou 等选项,可以控制文件解压时的行为,避免覆盖现有文件或创建新文件名。

示例:

bashCopy Code
7z x archive.7z -oC:\Output -aos
  • -aos:如果目标文件已存在,则跳过。

6. 并行压缩与多线程

-mmt 参数允许启用多核压缩,尤其是在处理大量小文件时能显著提高效率。

示例:

bashCopy Code
7z a archive.7z *.log -mmt=on

启用多线程压缩,提高压缩速度。

7. 批处理自动化

结合批处理脚本和 7-Zip 可以实现更复杂的自动化处理,例如定期备份文件。

示例:

bashCopy Code
for %%f in (*.jpg) do 7z a "%%f.7z" "%%f" -mx=9

此脚本会遍历当前目录下的所有 .jpg 文件,并将每个文件压缩为 .7z 格式。

8. 用 -p 密码保护并且加密文件名

-p 密码保护只是加密内容,但 -mhe=on 选项还会加密文件名,使得即使压缩文件被提取,文件名也会被隐藏。

示例:

bashCopy Code
7z a -pMyPassword -mhe=on secure.7z *.conf
  • -mhe=on:加密文件名。

9. 通过 -scs 设置字符集

压缩包含特殊字符的文件时,使用 -scs 可以避免字符集问题,确保文件名在不同系统间兼容。

示例:

bashCopy Code
7z a archive.7z *.txt -scsWIN
  • -scsWIN:指定字符集为 Windows。

10. 压缩大目录时使用 -bd 禁用显示进度条

当处理大量文件时,使用 -bd 可以禁用进度条,减少 CPU 使用和提高效率。

示例:

bashCopy Code
7z a archive.7z *.log -bd

这些高级技巧可以大大提升你在使用 7-Zip 时的效率,帮助你根据实际需求定制压缩任务。


深入探讨 7-Zip 的高级命令行技巧和应用场景:

11. 压缩带有时间戳的文件

通过 -tm 参数,可以根据文件的时间戳来创建压缩档案,通常用于备份场景。此参数允许根据文件的修改时间来选择是否压缩文件,或者根据时间进行归档。

示例:

bashCopy Code
7z a archive.7z *.log -tm
  • -tm:使用文件的修改时间戳创建归档。

12. 使用 -m0=ppmd 来压缩文本文件

对于文本类文件(尤其是大文件或高压缩比需求的文件),使用 PPMD 压缩方法通常能得到更好的压缩效果。这个方法比常规的 LZMA 更适用于压缩某些类型的文本数据。

示例:

bashCopy Code
7z a archive.7z *.txt -m0=ppmd -mx=9
  • -m0=ppmd:使用 PPMD 压缩方法。
  • -mx=9:指定压缩比为最大。

13. 压缩并指定不同的压缩级别

-mx 参数允许指定压缩级别(从 1 到 9)。1 为最快,但压缩比最差,9 为最慢,但压缩比最优。对于不同的文件类型和场景,可以选择不同的压缩级别。

示例:

bashCopy Code
7z a archive.7z *.log -mx=5
  • -mx=5:指定中等压缩级别。

14. 过滤特定文件类型

使用 -x 参数,可以排除某些文件类型或文件夹。这个功能对于处理大量数据时尤其有用,避免压缩不需要的文件。

示例:

bashCopy Code
7z a archive.7z * -x!*.tmp -x!*.bak
  • -x!*.tmp:排除 .tmp 文件。
  • -x!*.bak:排除 .bak 文件。

15. 设置密码并加密文件内容与文件名

除了仅加密内容,使用 -mhe=on-p 参数可以同时加密文件名和内容。这样,即便有人拿到压缩文件,也无法看到文件列表或提取内容,增加安全性。

示例:

bashCopy Code
7z a -pMySecretPassword -mhe=on encrypted_archive.7z *.docx
  • -pMySecretPassword:设置压缩包密码。
  • -mhe=on:加密文件名。

16. 创建压缩包并在压缩过程中显示详细信息

如果你希望看到压缩进度的更多细节(例如每个文件的大小、压缩后的大小等),可以使用 -bb3 参数,这会输出更多的详细信息。

示例:

bashCopy Code
7z a archive.7z *.pdf -bb3
  • -bb3:启用详细输出。

17. 对多个压缩文件进行合并

如果你有多个 .7z 压缩包,并且需要将它们合并为一个文件,可以使用 x 命令提取所有文件,然后重新打包。

示例:

bashCopy Code
7z x archive.part1.7z -oC:\Extracted
7z a new_archive.7z C:\Extracted\*
  • 先使用 x 提取分卷档案(多个部分合并),再重新打包。

18. 使用 -sdel 删除源文件

当你不希望保存原始文件,可以使用 -sdel 参数,它将在压缩后删除源文件。这个功能非常适合自动化备份和清理。

示例:

bashCopy Code
7z a -sdel archive.7z *.mp4
  • -sdel:压缩后删除源文件。

19. 自定义压缩包的注释

使用 -mtc=comment 可以在压缩包中添加自定义注释,这在压缩包中需要存储额外信息时非常有用。

示例:

bashCopy Code
7z a archive.7z *.jpg -mtc="Backup created on 2024-11-17"
  • -mtc="Backup created on 2024-11-17":添加注释。

20. 使用 7z 脚本自动化批量压缩任务

你可以通过批处理脚本、PowerShell 或 Bash 脚本来自动化 7-Zip 的压缩任务。比如,按文件类型进行分类压缩、定期备份等。

示例(Windows 批处理脚本):

Copy Code
@echo off
for %%f in (*.txt) do (
    7z a "%%~nf.7z" "%%f"
)

此脚本将当前目录下的所有 .txt 文件压缩成独立的 .7z 文件,每个文件压缩成单独的档案。

21. 多语言支持与字符编码

如果你需要将 7-Zip 压缩文件分享给使用不同语言或字符集的用户,可以使用 -scs 参数来设置字符集,从而确保文件名的兼容性。

示例:

bashCopy Code
7z a archive.7z *.csv -scsUTF-8
  • -scsUTF-8:将字符集设置为 UTF-8,确保支持多语言字符集。

22. 使用 -t7z 指定压缩格式

默认情况下,7-Zip 会使用 .7z 格式,但你也可以显式地使用 -t7z 参数来指定压缩格式。

示例:

bashCopy Code
7z a -t7z archive.7z *.txt
  • -t7z:指定使用 .7z 格式进行压缩。

通过掌握这些高级命令行技巧,你可以更高效地使用 7-Zip 进行文件压缩、备份、加密等操作。这些技巧不仅适用于普通用户,还能帮助开发者和系统管理员在批量处理文件时提高工作效率。


更多关于 7-Zip 的高级命令行技巧和应用:

23. 设置压缩文件的字典大小 (-md)

字典大小(-md)是影响 7-Zip 压缩性能和压缩比的重要参数。增大字典大小能够提高压缩比,但也会占用更多内存。在处理大文件时,适当增大字典大小可以获得更好的压缩效果。

示例:

bashCopy Code
7z a archive.7z *.mp4 -md=128m
  • -md=128m:设置字典大小为 128MB。你可以根据机器内存和文件大小调整该值。

24. 创建分卷压缩包

分卷压缩包是将大型文件拆分成多个较小的文件,适用于不能一次性上传或存储的大文件。通过 -v 参数,你可以指定分卷大小。

示例:

bashCopy Code
7z a -v100m archive.7z *.iso
  • -v100m:将文件拆分为每个 100MB 的分卷。你可以根据需要指定不同的大小(如 10m1g 等)。

25. 提取文件时忽略目录结构

使用 -aoa 参数可以强制将所有文件提取到当前目录,而不保留原始文件夹结构。这个选项非常适合需要解压大量文件到同一个目录时使用。

示例:

bashCopy Code
7z x archive.7z -aoa
  • -aoa:提取文件时忽略目录结构,所有文件将直接提取到当前目录。

26. 删除压缩包中的特定文件

如果压缩包已经创建好,并且你想要从中删除某个文件,可以使用 d 命令来删除压缩包中的文件,而不需要重新压缩整个文件。

示例:

bashCopy Code
7z d archive.7z file_to_remove.txt
  • d:删除压缩包中的指定文件。

27. 查看压缩包内容

使用 l 命令可以查看压缩包内的文件列表,包括文件名、文件大小、压缩比等信息。这对于检查压缩包内容非常有用。

示例:

bashCopy Code
7z l archive.7z
  • l:列出压缩包内的所有文件和文件夹。

28. 检测压缩包完整性

为了确保压缩包没有损坏,可以使用 t 命令对压缩包进行完整性检查。这个操作会验证压缩包内的文件是否可以正常解压缩。

示例:

bashCopy Code
7z t archive.7z
  • t:测试压缩包的完整性,检查文件是否损坏。

29. 创建加密压缩包并指定密码

除了加密文件内容,你还可以在压缩包创建时指定密码保护,使其只有知道密码的用户才能解压文件。使用 -p 参数可以为压缩包设置密码。

示例:

bashCopy Code
7z a archive.7z *.docx -pMySecurePassword
  • -pMySecurePassword:为压缩包设置密码 MySecurePassword。请注意密码会以明文显示,确保你在安全的环境下操作。

30. 选择性提取文件

如果你只想从压缩包中提取特定的文件,而不是整个压缩包,使用 ex 命令并指定具体文件路径。

示例:

bashCopy Code
7z e archive.7z file1.txt file2.jpg
  • e:提取压缩包中的 file1.txt 和 file2.jpg 文件。
  • 注意:e 会提取文件到当前目录,但不会保留文件的原始目录结构。如果需要保留目录结构,请使用 x 命令。

31. 自定义压缩包存储路径

你可以使用 -o 参数指定压缩包的输出目录。在压缩或解压过程中,能够自定义输出路径,避免文件混乱。

示例:

bashCopy Code
7z a -oC:\Backup archive.7z *.txt
  • -oC:\Backup:指定压缩包输出到 C:\Backup 目录。

32. 提高压缩速度而牺牲部分压缩比

通过调整 -mmt 参数,你可以控制多线程的数量,提升压缩速度。默认情况下,7-Zip 会自动使用多个线程,但你可以根据需要手动配置。

示例:

bashCopy Code
7z a archive.7z *.mp4 -mmt=on
  • -mmt=on:启用多线程处理,提升压缩速度。默认开启,通常对于多核 CPU,7-Zip 会自动选择最佳配置。

33. 限制压缩进程的优先级

你可以通过 -mtc 设置 CPU 优先级,以便在后台压缩时不影响其他任务的处理。这个功能在处理大型压缩任务时非常有用。

示例:

bashCopy Code
7z a archive.7z *.pdf -mtc=normal
  • -mtc=normal:设置正常的 CPU 优先级。

34. 基于压缩包大小调整字典大小

你可以通过 -mx(压缩级别)和 -md(字典大小)参数的结合,控制文件压缩的平衡,尽量优化文件大小和处理时间。

示例:

bashCopy Code
7z a archive.7z *.tar -mx=9 -md=256m
  • -mx=9:最大压缩比。
  • -md=256m:字典大小设置为 256MB,适合大文件。

35. 压缩后立即删除源文件

当你使用 -sdel 参数时,7-Zip 会在成功压缩后自动删除源文件。这个功能适用于批量清理文件的场景。

示例:

bashCopy Code
7z a archive.7z *.log -sdel
  • -sdel:压缩后删除源文件。

通过这些技巧和命令,你可以在使用 7-Zip 时更灵活地控制压缩、解压、加密和其他操作,不仅提高效率,还能满足特定的需求,尤其在大规模文件管理、自动化任务和备份过程中非常实用。


探索更多 7-Zip 高级命令行技巧和应用,帮助你更高效地使用该工具。

36. 压缩时设置文件时间戳

如果你需要修改文件的时间戳,7-Zip 允许你在压缩过程中设置时间戳。使用 -mtc 参数可以控制时间戳的行为。

示例:

bashCopy Code
7z a archive.7z *.log -mtc=on
  • -mtc=on:设置压缩包中文件的时间戳为当前时间。如果你希望保留原文件的时间戳,可以使用 -mtc=off

37. 压缩特定文件类型

如果你只想压缩某一类型的文件,可以使用通配符来指定文件类型。例如,如果你只想压缩 .txt.log 文件,可以这样操作:

示例:

bashCopy Code
7z a archive.7z *.txt *.log
  • *.txt *.log:将当前目录下所有 .txt 和 .log 文件压缩到 archive.7z 中。

38. 压缩时排除某些文件

使用 -x! 参数,你可以在压缩时排除某些文件或文件夹。这在你只想压缩某一部分文件而跳过其他文件时非常有用。

示例:

bashCopy Code
7z a archive.7z * -x!*.log -x!*.bak
  • -x!*.log:排除所有 .log 文件。
  • -x!*.bak:排除所有 .bak 文件。

39. 基于文件大小限制压缩内容

使用 -max 参数,你可以设置最大文件大小限制,只有小于该限制的文件才会被添加到压缩包中。对于批量压缩大文件时,这个功能非常方便。

示例:

bashCopy Code
7z a archive.7z *.txt -max=10m
  • -max=10m:只有文件大小小于 10MB 的 .txt 文件才会被压缩。

40. 使用外部文件列表压缩

如果你有一个包含要压缩的文件列表的文件(例如一个 .txt 文件),你可以使用 -i@ 参数从该列表中读取文件,而无需手动输入文件名。

示例:

bashCopy Code
7z a archive.7z -i@filelist.txt
  • -i@filelist.txt:从 filelist.txt 文件中读取文件列表,将这些文件添加到压缩包中。

41. 指定压缩文件的名称和路径

如果你需要将压缩包存储到特定的路径,并且想要给压缩包命名,可以在命令中直接指定目标路径和文件名。

示例:

bashCopy Code
7z a C:\Backup\archive.7z *.docx
  • C:\Backup\archive.7z:将压缩包输出到 C:\Backup\ 路径,并命名为 archive.7z

42. 创建 7z 格式压缩包

如果你希望强制将压缩包保存为 .7z 格式,可以显式指定文件扩展名为 .7z。默认情况下,7-Zip 会自动选择最合适的压缩格式,但如果需要特定格式,这个命令就很有用。

示例:

bashCopy Code
7z a archive.7z *.zip
  • archive.7z:将 .zip 文件压缩为 .7z 格式。

43. 控制压缩级别

通过 -mx 参数,你可以设置不同的压缩级别。7-Zip 支持从 0(无压缩)到 9(最佳压缩比)的级别选择。压缩级别越高,压缩比越好,但处理时间也越长。

示例:

bashCopy Code
7z a archive.7z *.mp4 -mx=5
  • -mx=5:设置中等压缩级别(压缩速度与压缩比之间的折衷)。

44. 在压缩时启用加密

如果你希望不仅压缩文件,还能加密文件内容,可以在命令中使用 -p-mhe=on 参数。-mhe=on 会加密文件名,而不仅仅是文件内容,这对于增强安全性非常重要。

示例:

bashCopy Code
7z a archive.7z *.conf -pMyPassword -mhe=on
  • -pMyPassword:设置压缩包的密码。
  • -mhe=on:启用文件名加密。

45. 指定特定的压缩算法

7-Zip 支持多种压缩算法,比如 LZMA、LZMA2、PPMd、BZip2 等。你可以通过 -m0 参数指定所需的压缩算法。例如,LZMA 是 7z 格式中常用的高效压缩算法。

示例:

bashCopy Code
7z a archive.7z *.jpg -m0=LZMA
  • -m0=LZMA:使用 LZMA 算法进行压缩。

46. 指定压缩包的注释

7-Zip 允许在压缩包中添加注释,注释对于管理和描述压缩包的内容非常有用。

示例:

bashCopy Code
7z a archive.7z *.txt -mmt=on -mhe=on -sccUTF-8 -z"Backup created on 2024-11-17"
  • -z"Backup created on 2024-11-17":为压缩包添加注释。

47. 自动化脚本中的错误处理

在批处理脚本中,你可以使用 -bb 参数来设置 7-Zip 在压缩过程中遇到错误时的行为。常见的选项有:

  • -bb1:仅显示错误信息。
  • -bb2:显示详细错误信息。
  • -bb3:显示所有信息。

示例:

bashCopy Code
7z a archive.7z *.log -bb2
  • -bb2:显示详细的错误信息,适用于调试和自动化脚本。

48. 指定解压时保留目录结构

通过 x 命令,7-Zip 允许在解压时保留压缩包中的目录结构,而不仅仅是将所有文件提取到当前目录。这样可以更好地恢复文件的原始组织方式。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles
  • -oC:\ExtractedFiles:将文件解压到指定目录,并保留压缩包中的目录结构。

49. 在批处理文件中使用 7-Zip

7-Zip 也可以很方便地在批处理脚本中使用,特别适合自动化处理大量文件压缩、解压和备份任务。你可以将命令行放入 .bat 文件中,然后定期运行它们来处理文件。

示例:

Copy Code
@echo off
7z a C:\Backups\backup1.7z C:\Data\*.txt
7z a C:\Backups\backup2.7z C:\Logs\*.log
pause
  • 将上述脚本保存为 backup.bat,每次运行时,它会将指定的文件夹内容压缩到备份目录中。

50. 使用 7-Zip 做大文件的分卷压缩

在处理大文件时,使用分卷压缩可以有效地将文件拆分为多个较小的部分,以便于存储或传输。结合使用 -v-mx 可以确保压缩包既有较好的压缩比,又不会超过指定的分卷大小。

示例:

bashCopy Code
7z a -v500m archive.7z *.iso -mx=9
  • -v500m:将压缩包分割成 500MB 的多个部分。
  • -mx=9:使用最大压缩比。

这些高级命令和技巧可以让你更灵活地使用 7-Zip,特别是在处理大量文件、自动化任务和进行压缩时。7-Zip 提供了非常多的定制选项,可以帮助你根据需求优化性能,提升工作效率。


深入探讨更多 7-Zip 高级命令行技巧,帮助你进一步提高操作的效率和灵活性。

51. 解压缩时跳过已存在的文件

有时在解压缩时,你可能不希望覆盖已有的文件,特别是当你正在解压多个文件时。7-Zip 提供了 -aoa(覆盖所有文件)、-aos(跳过已有的文件)和 -aou(重命名并覆盖)等选项来控制解压时的行为。

示例:

bashCopy Code
7z x archive.7z -aos
  • -aos:解压时跳过那些已经存在的文件,不会覆盖它们。

52. 批量解压文件

如果你有多个压缩文件需要解压,7-Zip 可以批量处理,通过简单的批处理脚本或命令实现。

示例:

bashCopy Code
for %f in (*.7z) do 7z x "%f" -o"extracted\"
  • for %f in (*.7z):这个命令会遍历当前目录下的所有 .7z 文件,并逐个解压。
  • -o"extracted\":将解压文件放在 extracted 目录中。

53. 解压缩时设置文件权限

如果你从一个压缩包中解压出文件并希望设置文件权限,7-Zip 支持 Linux 和其他系统的权限恢复。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles -mmt=on -p
  • -p:在解压时保持文件的权限设置,适用于类 Unix 系统。

54. 使用 7-Zip 解压到指定目录并移除路径

如果你希望在解压时去掉文件的路径结构,只提取文件而不保存其原始的目录结构,可以使用 -r 参数。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles -r
  • -r:去掉压缩包中文件的路径结构,直接解压文件到指定目录。

55. 创建包含多个密码保护的压缩包

如果你需要创建一个包含多个文件、但每个文件都使用不同密码保护的压缩包,7-Zip 提供了一个解决方案。你可以通过逐个添加文件,并指定不同的密码来实现。

示例:

bashCopy Code
7z a archive.7z file1.txt -pPassword1
7z a archive.7z file2.txt -pPassword2
  • 这样,file1.txt 和 file2.txt 在压缩包中会有不同的密码。

56. 设置压缩包的自解压(SFX)功能

7-Zip 可以创建自解压压缩包(SFX),即不需要安装解压软件的情况下,可以通过双击解压。使用 -sfx 参数创建自解压文件。

示例:

bashCopy Code
7z a -sfx archive.exe *.txt
  • -sfx:创建一个自解压的 .exe 文件。

57. 使用最大内存设置优化压缩性能

7-Zip 允许你使用 -mem 参数来设置压缩过程中使用的内存量,特别是在进行大量数据的压缩时,这对优化性能和速度非常有帮助。

示例:

bashCopy Code
7z a archive.7z *.log -mem=8g
  • -mem=8g:将内存限制为 8GB,以提高压缩过程的效率,适用于处理大文件。

58. 生成压缩包的文件列表

如果你希望生成一个包含压缩包中文件名的列表,可以使用 l 命令列出文件。这个功能在整理和检查文件时非常有用。

示例:

bashCopy Code
7z l archive.7z
  • l:列出 archive.7z 中的所有文件信息。

59. 检查压缩包的完整性

如果你想检查一个压缩包是否损坏,或者是否存在错误,可以使用 t 命令验证压缩包的完整性。

示例:

bashCopy Code
7z t archive.7z
  • t:测试压缩包 archive.7z 的完整性,确保其没有损坏。

60. 更改文件的压缩属性

7-Zip 允许你在压缩过程中修改文件的属性(如更改文件的时间戳或权限)。通过指定文件属性参数,7-Zip 能够帮助你精确控制文件的属性设置。

示例:

bashCopy Code
7z a archive.7z *.exe -mtc=on
  • -mtc=on:启用时间戳处理,压缩包中文件的时间戳将会被设置为当前时间。

61. 通过脚本自动化解压任务

在日常工作中,如果你需要定期解压一系列压缩包,或者按特定条件解压文件,可以通过批处理脚本来自动化这个过程。

示例:

Copy Code
@echo off
for %%f in (*.7z) do (
    7z x "%%f" -oC:\Extracted\%%~nf\
)
pause
  • 这段批处理代码会将当前目录下的所有 .7z 文件解压到 C:\Extracted 目录下,并根据每个压缩包的名称创建子文件夹。

62. 在批处理脚本中使用多个 7-Zip 操作

你可以将多个 7-Zip 命令链式地放入批处理文件中,实现批量压缩、解压、加密等任务的自动化。

示例:

Copy Code
@echo off
7z a backup.7z C:\Documents\*.txt
7z a backup.7z C:\Documents\*.pdf -pMyPassword
7z x backup.7z -oC:\BackupExtract
pause
  • 这个脚本会先压缩 *.txt 和 *.pdf 文件到 backup.7z,然后使用密码压缩某些文件,最后将压缩包解压到指定目录。

63. 压缩包内的文件显示方式调整

你可以使用 -scs 参数调整显示文件路径时的字符集,特别是在处理多语言文件时,可以确保文件名显示正确。

示例:

bashCopy Code
7z a archive.7z *.txt -scsUTF-8
  • -scsUTF-8:将文件名的字符集设置为 UTF-8,适用于多语言或特殊字符的文件名。

64. 7-Zip 自定义设置文件

7-Zip 支持自定义配置文件,可以通过 .7z 配置文件设置默认的参数。例如,你可以为常用的压缩选项创建一个配置文件,避免每次都手动输入命令。

示例:

bashCopy Code
7z a archive.7z *.docx -pMyPassword -mmt=on -scsUTF-8 -sccUTF-8
  • 将这个命令保存到 .7z 配置文件中,并通过脚本直接调用配置文件来自动化压缩任务。

65. 通过 7-Zip 合并分卷压缩包

如果你有多个分卷压缩包并需要将它们合并,可以通过 x 命令解压整个多分卷的压缩包,7-Zip 会自动合并并提取所有的文件。

示例:

bashCopy Code
7z x archive.7z.001 -oC:\ExtractedFiles
  • archive.7z.001:将第一个分卷文件作为输入,7-Zip 会自动识别并合并所有后续的分卷文件进行解压。

这些高级技巧和命令能够帮助你更高效地利用 7-Zip 处理文件的压缩和解压任务。不论你是处理大文件、创建自解压包,还是进行批量操作,这些功能都能显著提升你的工作效率。


更多 7-Zip 高级命令行技巧,帮助你更好地掌控压缩和解压过程。

66. 基于文件扩展名进行过滤

7-Zip 提供了灵活的文件过滤功能,你可以根据文件扩展名来选择性地压缩或解压文件,而不是处理所有文件。

示例:

bashCopy Code
7z a archive.7z *.txt *.log
  • *.txt *.log:只将当前目录下的 .txt 和 .log 文件添加到压缩包中,而忽略其他文件类型。

67. 压缩时保留文件的时间戳

在压缩文件时,7-Zip 默认不会保留文件的修改时间戳,但你可以通过 -mtc 参数来指定保留文件的时间信息。

示例:

bashCopy Code
7z a archive.7z *.txt -mtc=on
  • -mtc=on:启用时间戳处理,确保压缩包中的文件保留原始的时间戳。

68. 设置压缩比例

7-Zip 支持多种压缩级别,从快速压缩到最大压缩,可以通过 -mx 选项调整压缩级别。压缩比和压缩速度通常是权衡的选择,取决于你对速度和压缩率的要求。

示例:

bashCopy Code
7z a archive.7z *.txt -mx=9
  • -mx=9:设置为最大压缩级别(9 表示最大压缩率),这会使用更多的计算资源,但压缩后的文件体积最小。

69. 设置压缩文件的字典大小

在某些情况下,增加字典大小可以提高压缩效果,尤其是当处理非常大的文件时。7-Zip 提供了 -md 选项来设置字典大小。

示例:

bashCopy Code
7z a archive.7z *.txt -md=128m
  • -md=128m:设置字典大小为 128MB,适合处理大文件以提高压缩效率。

70. 从指定目录递归压缩所有文件

7-Zip 支持递归地压缩某个目录及其子目录中的所有文件。可以使用 -r 参数来实现。

示例:

bashCopy Code
7z a archive.7z C:\Documents\* -r
  • -r:递归压缩 C:\Documents 目录及其所有子目录下的文件。

71. 将多个文件合并为一个压缩包

当你有多个单独的文件,并希望将它们合并到同一个压缩包中时,可以使用下面的命令。

示例:

bashCopy Code
7z a archive.7z file1.txt file2.txt file3.txt
  • 这将 file1.txtfile2.txt 和 file3.txt 文件压缩到同一个 archive.7z 文件中。

72. 使用密码加密压缩包

通过 -p 参数,你可以为压缩包设置密码。这样,解压缩时必须输入正确的密码才能解开文件。

示例:

bashCopy Code
7z a archive.7z *.txt -pMySecurePassword
  • -pMySecurePassword:将压缩包加密并设置密码为 MySecurePassword

73. 创建加密的自解压文件(SFX)

除了普通的加密压缩包,你还可以创建加密的自解压文件。这样,用户无需安装 7-Zip,只需点击压缩包文件即可自动解压。

示例:

bashCopy Code
7z a -sfx archive.exe *.txt -pMySecurePassword
  • -sfx:创建一个自解压的 .exe 文件。
  • -pMySecurePassword:设置密码保护。

74. 设置自解压文件的自动解压目录

你可以在自解压压缩包中指定解压目标目录。这样,当用户运行自解压文件时,文件会自动解压到指定的目录。

示例:

bashCopy Code
7z a -sfx7z.sfx archive.exe *.txt -oC:\ExtractedFiles
  • -oC:\ExtractedFiles:指定自解压文件解压的目标路径。

75. 通过参数设置压缩文件的分卷大小

7-Zip 允许你指定分卷压缩的大小,可以根据需求将压缩包切割成多个小文件。使用 -v 参数来设置每个分卷的大小。

示例:

bashCopy Code
7z a archive.7z *.txt -v10m
  • -v10m:将压缩包分卷为 10MB 的小文件。

76. 压缩并设置文件分卷格式

你可以同时设置分卷压缩包的格式(如 .zip.7z)和分卷大小。比如,将压缩文件分割成 .zip 格式的多个文件。

示例:

bashCopy Code
7z a archive.zip *.txt -v5m
  • -v5m:将 .zip 压缩包分割为 5MB 的文件。

77. 显示命令行操作的进度条

在使用 7-Zip 压缩或解压大文件时,你可以通过 -bb 参数来显示进度条。这有助于在处理大型文件时查看操作进度。

示例:

bashCopy Code
7z a archive.7z *.txt -bb1
  • -bb1:显示压缩过程中的基本进度信息。-bb3 可以显示更详细的进度条信息。

78. 创建多线程压缩

7-Zip 支持多线程压缩和解压。使用 -mmt 参数,可以指定使用多少个 CPU 核心来加速压缩过程。根据系统的处理器核心数量,你可以优化压缩效率。

示例:

bashCopy Code
7z a archive.7z *.txt -mmt=on
  • -mmt=on:启用多线程压缩,自动利用多个 CPU 核心加速操作。

79. 解压指定类型的文件

在解压文件时,你可以指定只解压压缩包中的特定类型文件。例如,只解压 .txt 文件,而忽略其他类型的文件。

示例:

bashCopy Code
7z x archive.7z *.txt -oC:\Extracted
  • *.txt:只解压 .txt 文件。

80. 更新压缩包中的文件

如果你想更新一个已存在的压缩包中的某些文件,可以使用 u 命令。通过此命令,你可以添加、替换或删除压缩包中的文件。

示例:

bashCopy Code
7z u archive.7z *.txt
  • u:将新的 .txt 文件更新到 archive.7z 压缩包中,已存在的文件将被替换。

81. 删除压缩包中的文件

如果你想从已有的压缩包中删除某些文件,可以使用 d 命令。

示例:

bashCopy Code
7z d archive.7z *.log
  • d:从压缩包 archive.7z 中删除 .log 文件。

82. 创建临时压缩包

如果你想要压缩文件而不保存最终的压缩包,可以使用临时压缩包。压缩完成后,压缩包会自动删除。

示例:

bashCopy Code
7z a -txx -t7z archive.7z *.txt
  • -txx:使用临时压缩包,不会保存最终文件。

83. 生成压缩包的 SHA256 校验和

7-Zip 支持生成文件的哈希值校验码,帮助你验证文件完整性。例如,生成一个 .7z 文件的 SHA256 校验和。

示例:

bashCopy Code
7z h archive.7z
  • h:显示文件的哈希值。

84. 将文件列表导出为外部文本文件

如果你想将压缩包中的文件列表导出为一个文本文件,7-Zip 也提供了这种功能。

示例:

bashCopy Code
7z l archive.7z > filelist.txt
  • l:列出压缩包中的所有文件。
  • > filelist.txt:将输出结果保存到 filelist.txt 文件中。

这些技巧和命令进一步拓宽了 7-Zip 的使用场景,涵盖了从自动化压缩任务到文件校验、分卷压缩等高级功能。


深入探讨 7-Zip 的一些进阶技巧,以便你能更加高效地使用这个强大的工具。

85. 使用 7-Zip 提取文件的特定路径

你可以指定提取到特定路径,而不仅仅是默认的当前位置。这对于解压缩时有特别的需求(例如将文件提取到不同的目录)非常有用。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles
  • -oC:\ExtractedFiles:将压缩包 archive.7z 中的所有文件解压到 C:\ExtractedFiles 目录中。

86. 批量压缩多个目录

7-Zip 可以批量压缩多个目录,特别是在处理大量文件时非常方便。你可以直接指定多个目录来进行压缩操作。

示例:

bashCopy Code
7z a archive.7z C:\folder1 C:\folder2 C:\folder3
  • 这会将 folder1folder2 和 folder3 目录下的所有内容一起压缩到 archive.7z 中。

87. 用通配符过滤文件

你可以通过通配符过滤文件,比如只压缩某一类型的文件或某些文件名模式。通配符(*?)可以帮助你选择性地压缩文件。

示例:

bashCopy Code
7z a archive.7z *.jpg
  • 这将仅压缩当前目录下所有 .jpg 文件。

示例2:

bashCopy Code
7z a archive.7z *2024*.txt
  • 这会将文件名包含 2024 的所有 .txt 文件压缩到 archive.7z 中。

88. 设置压缩时忽略某些文件

你可以使用 -x 选项来排除某些文件或目录,在压缩时忽略它们。

示例:

bashCopy Code
7z a archive.7z * -x!*.log -x!*.tmp
  • -x!*.log:排除所有 .log 文件。
  • -x!*.tmp:排除所有 .tmp 文件。

这样会将当前目录下的所有文件压缩,但忽略 .log.tmp 文件。

89. 为压缩包设置分卷并指定密码

7-Zip 支持设置分卷压缩并同时为压缩包设置密码,这对于分卷传输和安全保护非常有用。

示例:

bashCopy Code
7z a -v5m -pMyPassword archive.7z *.txt
  • -v5m:将压缩包分割成 5MB 的分卷。
  • -pMyPassword:设置压缩包密码为 MyPassword

90. 创建指定文件类型的压缩包

你可以根据文件的类型(例如只压缩某个特定扩展名的文件)来创建压缩包。

示例:

bashCopy Code
7z a archive.7z *.jpg
  • 这会将当前目录下的所有 .jpg 文件压缩到 archive.7z 中。

91. 自定义压缩包的扩展名

虽然 7-Zip 默认的压缩格式是 .7z,但你可以为压缩包指定其他扩展名(如 .zip)来兼容不同的解压软件。

示例:

bashCopy Code
7z a archive.zip *.txt
  • 这会将当前目录下的所有 .txt 文件压缩成 .zip 格式的压缩包。

92. 创建压缩包的日志

你可以使用 -bb 参数生成更详细的日志信息,并记录压缩过程中的所有操作。

示例:

bashCopy Code
7z a archive.7z *.txt -bb3
  • -bb3:显示详细的进度和操作日志。

93. 使用 7z 解压多个文件

7-Zip 支持批量解压多个文件,只需将多个压缩包路径列出即可。

示例:

bashCopy Code
7z x archive1.7z archive2.7z archive3.7z
  • 这会依次解压 archive1.7zarchive2.7z 和 archive3.7z 中的文件。

94. 提取特定文件到指定目录

在提取压缩包中的文件时,你可以选择仅提取某些文件,并指定解压目标目录。

示例:

bashCopy Code
7z x archive.7z file1.txt -oC:\ExtractedFiles
  • file1.txt:只提取 archive.7z 中的 file1.txt 文件。
  • -oC:\ExtractedFiles:将提取的文件保存到 C:\ExtractedFiles 目录。

95. 合并分卷压缩包

如果你已经拥有多个分卷的压缩包(例如 archive.7z.001archive.7z.002),7-Zip 也能自动合并并解压它们。

示例:

bashCopy Code
7z x archive.7z.001
  • 只需要解压第一个分卷文件,7-Zip 会自动处理所有分卷,合并并解压所有文件。

96. 使用自解压压缩包提取文件

你可以创建一个自解压压缩包并自动解压指定的文件。自解压文件(.exe 格式)允许用户无需 7-Zip 也能解压文件。

示例:

bashCopy Code
7z a -sfx archive.exe *.txt
  • -sfx:创建一个自解压的 .exe 文件。
  • 然后,用户只需点击 .exe 文件,就能解压其中的文件。

97. 解压带有密码保护的压缩包

7-Zip 支持对加密的压缩包进行解压。在解压时,你需要提供正确的密码。

示例:

bashCopy Code
7z x archive.7z -pMyPassword
  • -pMyPassword:提供压缩包的密码 MyPassword,并解压文件。

98. 自动化压缩任务

通过批处理脚本(.bat 文件),你可以自动化压缩和解压任务。可以将多个 7-Zip 命令组合到一个脚本中,以便批量处理文件。

示例:

Copy Code
@echo off
7z a archive1.7z *.txt
7z a archive2.7z *.jpg
7z a archive3.7z *.log
echo Compression completed!
  • 这会压缩 .txt.jpg 和 .log 文件到不同的压缩包中。

99. 使用 7z 提取目录的文件清单

你可以列出压缩包中的所有文件,并将清单导出为文本文件。这样你就能快速查看压缩包中包含的内容,而不需要解压它。

示例:

bashCopy Code
7z l archive.7z > filelist.txt
  • l:列出压缩包中的所有文件。
  • > filelist.txt:将文件列表保存到 filelist.txt 文件中。

100. 列出压缩包的详细信息

你可以查看压缩包的详细信息,包括压缩比、文件数量、大小等,帮助你了解压缩包的具体情况。

示例:

bashCopy Code
7z l archive.7z -slt
  • -slt:显示详细的列表信息(包括每个文件的大小、压缩比、日期等)。

这些高级技巧可以帮助你在使用 7-Zip 时提高效率和灵活性,满足不同的工作需求。


探讨一些更高级的 7-Zip 用法,帮助你进一步提升文件压缩和解压的效率。

101. 使用 7-Zip 创建加密的压缩包

你可以为压缩包设置密码保护,防止未授权访问压缩包内容。7-Zip 支持加密文件名以及文件内容。

示例:

bashCopy Code
7z a -pMyPassword -mhe archive.7z *.txt
  • -pMyPassword:设置密码为 MyPassword
  • -mhe:启用加密文件名。即使是知道压缩包密码的人,也无法看到压缩包中的文件名,除非解压时提供密码。

102. 强制使用某种压缩算法

7-Zip 支持多种压缩算法,默认使用 LZMA 或 LZMA2,但你可以手动选择其他算法来调整压缩效果。

示例:

bashCopy Code
7z a -t7z -mx=9 -m0=lzma2 archive.7z *.txt
  • -t7z:指定压缩格式为 .7z(这是默认格式)。
  • -mx=9:设置压缩级别为最高(0-9,9 为最佳压缩)。
  • -m0=lzma2:使用 LZMA2 算法进行压缩。LZMA2 通常比 LZMA 更有效,特别是在多核 CPU 上。

103. 压缩时指定字典大小

字典大小(-md)在 LZMA 和 LZMA2 压缩算法中对压缩比有很大影响。较大的字典能够提供更高的压缩率,但也会增加内存的使用量。

示例:

bashCopy Code
7z a -mx=9 -md=128m archive.7z *.txt
  • -md=128m:设置字典大小为 128 MB。增加字典大小可以提高压缩效率,但会使用更多的内存。
  • -mx=9:设置压缩级别为最高,配合大字典可以获得最好的压缩效果。

104. 使用多线程提高压缩速度

7-Zip 支持多线程压缩,利用多核 CPU 提高压缩和解压速度。可以通过 -mmt 参数来指定使用多少个线程。

示例:

bashCopy Code
7z a -mmt=on archive.7z *.txt
  • -mmt=on:启用多线程压缩。默认情况下,7-Zip 会根据 CPU 的核心数自动决定使用的线程数。
  • 如果你想指定使用特定数量的线程,可以使用 -mmt=4(例如,指定使用 4 个线程)。

105. 删除原始文件,压缩后自动清理

如果你希望压缩完成后自动删除原始文件(例如在备份任务中),你可以使用 -sdel 参数。

示例:

bashCopy Code
7z a -sdel archive.7z *.txt
  • -sdel:在压缩完成后,删除原始的 .txt 文件。这样做可以节省存储空间,特别是当你希望压缩和清理数据时。

106. 仅压缩新文件或已更改的文件

如果你只想压缩目录中新增或修改过的文件,可以使用 -up1q0r2x2y2z1w2 参数来指定文件更新的方式。

示例:

bashCopy Code
7z a -u1 archive.7z *.txt
  • -u1:仅添加自上次压缩后新增或更改过的文件。如果你多次进行压缩备份,-u 选项会非常有用。

107. 按文件时间戳排除文件

在解压缩时,你可以指定仅提取最近修改的文件,或排除过期的文件。-u 选项在解压时也很有用。

示例:

bashCopy Code
7z x archive.7z -u+1
  • -u+1:仅提取最近修改过的文件。

108. 通过文件属性过滤

你还可以使用文件属性来选择性地压缩或提取文件。例如,通过文件大小或日期进行筛选。

示例:

bashCopy Code
7z a archive.7z -xr!*.bak *.txt
  • -xr!*.bak:排除所有 .bak 文件,仅压缩 .txt 文件。

109. 批量加密多个压缩包

你可以为多个压缩包批量设置密码,使用批处理脚本来完成这一任务。

示例:

Copy Code
@echo off
for %%F in (*.7z) do (
  7z a "%%F" -pMyPassword
)
  • 这个批处理脚本会为当前目录下的每个 .7z 文件设置密码保护。

110. 自定义压缩包的文件顺序

你可以控制文件在压缩包中的顺序,尤其是当你希望某些文件在压缩包中按特定顺序排列时。这对于备份和文件管理非常有用。

示例:

bashCopy Code
7z a archive.7z file1.txt file2.txt
  • 在上述例子中,file1.txt 会出现在 file2.txt 前面。你可以在命令中按照自己希望的顺序列出文件和文件夹。

111. 使用自解压包安装脚本

对于创建自解压文件(.exe 格式)的情况,你可以编写安装脚本,使自解压包在解压时执行某些操作(如自动安装或配置)。

示例:

bashCopy Code
7z a -sfx7z.sfx archive.exe *.txt -m0=lzma2
  • -sfx7z.sfx:使用自解压模块创建可执行文件,并在解压时执行指定的操作。你可以将一个安装脚本与自解压包结合,使解压后自动执行某些操作。

112. 通过批处理或 PowerShell 自动解压

你可以将 7-Zip 命令嵌入到 Windows 批处理脚本或 PowerShell 脚本中,以自动化解压过程。

批处理示例:

Copy Code
@echo off
7z x "archive.7z" -oC:\ExtractedFiles

PowerShell 示例:

powershellCopy Code
Start-Process "7z.exe" -ArgumentList "x", "archive.7z", "-oC:\ExtractedFiles"
  • 这两个脚本都能自动解压 archive.7z 到指定目录。

113. 生成包含多种文件格式的压缩包

7-Zip 可以创建一个包含多个文件格式的压缩包,使你可以在一个文件中打包各种类型的文件。

示例:

bashCopy Code
7z a archive.7z *.txt *.jpg *.mp4
  • 这会将当前目录下的 .txt.jpg 和 .mp4 文件压缩到同一个压缩包 archive.7z 中。

114. 恢复损坏的压缩包

如果 7-Zip 检测到损坏的压缩包,可以尝试使用恢复功能进行修复。7-Zip 会尽量恢复压缩包中的数据。

示例:

bashCopy Code
7z r archive.7z
  • r:该命令会尽量修复损坏的 .7z 压缩包。

115. 提取并重命名文件

你可以在解压缩时指定文件的输出路径和名称。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles\newname.txt
  • 这会将 archive.7z 中的文件提取到指定目录,并将文件重命名为 newname.txt

这些进阶技巧进一步展示了 7-Zip 的强大功能。无论是批量操作、加密保护、压缩算法的选择,还是自动化任务,7-Zip 都能够满足各种复杂需求。


深入探讨 7-Zip 的高级技巧,这些技巧不仅有助于提升文件压缩效率,还有助于更好地管理和处理大文件或大量文件。

116. 创建分卷压缩包

当你需要将一个大型压缩包分割成多个小文件(例如,存储在多个磁盘或通过网络传输),7-Zip 可以轻松创建分卷压缩包。

示例:

bashCopy Code
7z a -v100m archive.7z *.txt
  • -v100m:将压缩包分卷,每个分卷的大小为 100 MB。如果压缩包超过此大小,7-Zip 会自动创建多个 .7z.001.7z.002 等分卷。
  • 你可以根据需求调整分卷大小(例如,-v10m 表示每个分卷 10 MB)。

117. 创建无损压缩的 ISO 文件

有时候你需要压缩光盘镜像文件(ISO),并且希望不丢失任何数据。7-Zip 支持创建无损压缩的 ISO 文件。

示例:

bashCopy Code
7z a -tiso archive.iso *.txt
  • -tiso:指定输出格式为 ISO 镜像文件,这对于备份光盘或创建软件安装光盘映像非常有用。

118. 自定义压缩包的注释

7-Zip 支持为压缩包添加注释,可以方便地为文件添加描述或注解。注释信息不会影响文件的解压或压缩,但对于管理多个文件时非常有用。

示例:

bashCopy Code
7z a archive.7z *.txt -mhe -mmt=on -scsUTF-8 -pMyPassword -y -y -wC:\Temp -m0=lzma2
  • -scsUTF-8:指定使用 UTF-8 编码,这对于多语言环境非常有用。
  • -m0=lzma2:指定使用 LZMA2 算法进行压缩。
  • 注释:在压缩过程中,添加注释是通过命令行无法直接实现的,但你可以在解压缩后手动修改压缩包的注释(通过 7-Zip 文件管理器)。

119. 使用命令行进行文件过滤

7-Zip 允许通过文件扩展名、文件大小、修改日期等进行文件过滤。这样可以在批量压缩时,只选择符合特定条件的文件。

示例:

bashCopy Code
7z a archive.7z *.txt -x!*.log
  • -x!*.log:排除所有 .log 文件。即使目录中包含 .txt 和 .log 文件,这条命令会只压缩 .txt 文件。

120. 通过正则表达式选择文件

如果你希望通过正则表达式来选择文件(比如选择所有 .jpg.png 文件),你可以利用 7-Zip 的文件选择功能。

示例:

bashCopy Code
7z a archive.7z *.jpg *.png
  • *.jpg 和 *.png:这两个文件类型会通过命令行压缩。可以用通配符来精确选择特定文件类型。

121. 命令行实现文件版本控制

7-Zip 支持将文件版本管理系统融入命令行,允许你根据时间戳或版本号进行备份。

示例:

bashCopy Code
7z a archive_v$(date +%Y%m%d).7z *.txt
  • $(date +%Y%m%d):利用当前的日期来动态生成压缩包名称,确保每次压缩时生成不同版本的文件。

122. 跨平台文件压缩

7-Zip 是跨平台的,除了 Windows 系统,还可以在 Linux 和 macOS 上使用。通过安装 p7zip 包,你可以在这些平台上进行文件压缩和解压。

示例(Linux):

bashCopy Code
sudo apt install p7zip-full
7z a archive.7z *.txt
  • 以上命令会在 Linux 系统中安装 p7zip 并执行文件压缩操作,功能与 Windows 版本一致。

123. 批量提取文件并重命名

有时候需要批量提取压缩包中的文件并进行批量重命名。7-Zip 支持批量提取操作,并可以配合批处理脚本来实现批量文件管理。

示例:

Copy Code
for %%f in (*.7z) do (
  7z x "%%f" -oC:\ExtractedFiles
  ren "C:\ExtractedFiles\*.txt" "newname_%%f.txt"
)
  • %%f:批处理脚本会遍历当前目录下的所有 .7z 文件,提取其内容到指定目录,并按照新的命名规则重命名文件。

124. 压缩时排除特定文件或目录

如果你需要压缩一个目录并排除某些文件或子目录,可以使用 -xr 参数排除不需要的文件。

示例:

bashCopy Code
7z a archive.7z C:\MyFolder\* -xr!*.bak -xr!*.log
  • -xr!*.bak:排除 .bak 文件。
  • -xr!*.log:排除 .log 文件。这个命令会压缩 C:\MyFolder 中的所有文件和子目录,但排除 .bak 和 .log 文件。

125. 压缩成多个格式

7-Zip 支持将文件压缩成多种格式,你可以在同一命令中同时创建 .7z.zip.tar 等格式的压缩包。

示例:

bashCopy Code
7z a archive.7z *.txt
7z a archive.zip *.txt
7z a archive.tar *.txt
  • 通过上述命令,你会得到 .7z.zip 和 .tar 格式的压缩文件,所有的文件都会被压缩在这些格式的压缩包里,方便在不同环境下使用。

126. 设置自解压包的安装路径

自解压包不仅可以自动解压,还可以自定义文件解压的路径。这样,当用户运行自解压包时,它会自动将文件提取到指定目录。

示例:

bashCopy Code
7z a -sfx7z.sfx archive.exe *.txt -oC:\ExtractedFiles
  • -oC:\ExtractedFiles:指定解压后的文件存放路径。自解压包会将文件提取到 C:\ExtractedFiles

127. 加密并保护压缩包的文件

7-Zip 允许通过加密来保护压缩包的内容和文件名。使用 -mhe-p 参数可以使压缩包更加安全。

示例:

bashCopy Code
7z a -pMyPassword -mhe archive.7z *.txt
  • -mhe:启用加密文件名,确保文件名本身也受到保护,即使密码正确,未解压的人也无法查看文件名。

128. 创建和解压缩 .tar.gz 格式文件

如果你需要在 Linux 或其他平台上使用 .tar.gz 格式,可以通过 7-Zip 来创建和解压这类文件。

创建 .tar.gz 文件:

bashCopy Code
7z a -ttar -so archive.tar *.txt | 7z a -tgzip -so archive.tar.gz
  • -ttar:创建 .tar 文件。
  • -tgzip:将 .tar 文件压缩成 .gz 格式。

解压 .tar.gz 文件:

bashCopy Code
7z x archive.tar.gz
  • 这条命令将解压 .tar.gz 文件。

129. 使用 7z 命令批量解压多个文件

你可以通过批处理脚本来批量解压多个压缩包,无论是 .7z.zip 还是 .tar 文件。

批处理脚本:

Copy Code
@echo off
for %%f in (*.7z) do (
  7z x "%%f" -oC:\ExtractedFiles
)
  • 这条命令会批量解压当前目录下所有的 .7z 文件,解压后的文件将保存在 C:\ExtractedFiles 目录。

130. 对压缩包内容进行比对

7-Zip 还支持对比不同压缩包中的文件,查看哪些文件发生了变化。你可以通过 -slt 参数来列出压缩包中的详细信息,从而进行比对。

示例:

bashCopy Code
7z l archive.7z -slt
  • -slt:列出压缩

包括文件的时间戳、大小、压缩比等,可以帮助你对比不同压缩包中的文件内容,查看哪些文件有变动或差异。

131. 批量压缩不同目录中的文件

如果你有多个目录,并且希望将每个目录中的文件压缩成一个独立的压缩包,你可以通过批处理脚本来实现。

示例:

Copy Code
@echo off
for /d %%d in (*) do (
  7z a "%%d.7z" "%%d\*"
)
  • 这段脚本会遍历当前目录下的所有子目录(%%d),并将每个子目录中的所有文件压缩成一个独立的 .7z 文件。

132. 指定压缩包中的文件排序

你可以在压缩文件时指定文件的排序顺序。例如,按字母顺序排序文件列表,以便在解压时能够保持一致。

示例:

bashCopy Code
7z a archive.7z *.txt
  • 7-Zip 默认会按文件名进行字母排序压缩文件。如果你希望更复杂的排序,可以在压缩前手动处理文件列表,例如通过排序命令生成文件列表。

133. 使用 7-Zip 自定义命令行批量解压

你可以编写一个批处理脚本来自动化解压工作。以下脚本可以解压多个 .7z 压缩包,并将它们分别解压到相应的目录中。

示例:

Copy Code
@echo off
for %%f in (*.7z) do (
  7z x "%%f" -o"%%~nf"
)
  • %%~nf:会提取压缩包文件名(不包括扩展名),并以该名称作为输出目录。比如,archive.7z 会被解压到 archive 目录。

134. 处理大容量数据时使用多线程

7-Zip 提供了多线程支持,可以在多核处理器上加速压缩过程。默认情况下,7-Zip 会自动选择适合的线程数,但你也可以手动指定使用的线程数量。

示例:

bashCopy Code
7z a archive.7z *.txt -mmt=on
  • -mmt=on:启用多线程压缩。7-Zip 会根据你的 CPU 核心数自动分配线程数量。你还可以通过 -mmt=4 来手动指定使用 4 个线程。

135. 压缩时指定字典大小

在使用 LZMA 或 LZMA2 算法时,可以通过设置字典大小来优化压缩效率。较大的字典会提高压缩比,但也会消耗更多内存。

示例:

bashCopy Code
7z a archive.7z *.txt -mx=9 -md=64m
  • -mx=9:设置最高压缩比(压缩质量为 9)。
  • -md=64m:设置字典大小为 64 MB。字典越大,压缩比越高,但需要更多的内存。

136. 创建自解压档案并指定解压路径

通过自解压档案(SFX),你可以将压缩包打包成一个可执行文件,用户双击后会自动解压到指定的路径。

示例:

bashCopy Code
7z a -sfx7z.sfx archive.exe *.txt -oC:\ExtractedFiles
  • -sfx7z.sfx:使用 7-Zip 的自解压模块(7z.sfx)将压缩包打包为可执行文件(archive.exe)。
  • -oC:\ExtractedFiles:指定解压路径为 C:\ExtractedFiles

137. 通过密码保护文件并隐藏文件名

为了增强安全性,7-Zip 可以加密文件内容和文件名。通过 -mhe-p 参数,可以确保压缩包无法被解压,除非提供正确的密码。

示例:

bashCopy Code
7z a -pMyPassword -mhe archive.7z *.txt
  • -pMyPassword:设置压缩包的密码。
  • -mhe:加密压缩包中的文件名。即使有人获得了压缩包文件,也无法查看文件名,直到输入密码。

138. 使用命令行列出压缩包内容

如果你不想解压整个压缩包,只需要查看其内容,可以使用 7z l 命令列出压缩包中的文件。

示例:

bashCopy Code
7z l archive.7z
  • 这条命令会列出 archive.7z 压缩包中的所有文件,包括文件的大小、修改时间和文件名。

139. 压缩大文件时使用临时目录

如果你在压缩特别大的文件时遇到内存不足或磁盘空间不足的问题,可以通过设置临时目录来避免资源耗尽。

示例:

bashCopy Code
7z a archive.7z largefile.iso -wC:\Temp
  • -wC:\Temp:指定临时工作目录为 C:\Temp。这样,7-Zip 会在该目录中存储临时文件,避免占用系统的默认临时目录。

140. 通过命令行生成报告

7-Zip 允许你将压缩过程中的详细信息输出到一个文件中。这个功能在需要生成压缩日志时非常有用。

示例:

bashCopy Code
7z a archive.7z *.txt > report.txt
  • 该命令会将压缩过程中的所有信息输出到 report.txt 文件中。你可以查看该文件来检查压缩是否成功,或了解压缩的详细信息。

141. 压缩和解压时指定输出文件名

7-Zip 允许你通过命令行指定输出文件的名称。如果不指定,默认会使用输入文件名作为输出文件名。

示例(压缩):

bashCopy Code
7z a output.7z inputfile.txt
  • 这条命令会将 inputfile.txt 文件压缩为 output.7z 文件。

示例(解压):

bashCopy Code
7z x archive.7z -ooutput
  • -ooutput:指定解压路径为 output 文件夹。

142. 选择性解压文件

有时你可能只需要解压压缩包中的某些文件,而不是全部文件。你可以指定要解压的文件。

示例:

bashCopy Code
7z x archive.7z *.txt
  • 这条命令只会解压 archive.7z 中的 .txt 文件。

143. 使用 -scs 指定编码

7-Zip 支持指定压缩包的字符编码,特别是在多语言环境下使用时。你可以通过 -scs 参数选择编码格式。

示例:

bashCopy Code
7z a archive.7z *.txt -scsUTF-8
  • -scsUTF-8:使用 UTF-8 编码来处理文件名和内容,确保可以支持多种语言字符。

144. 创建多格式压缩包

如果你希望压缩包同时支持多个平台和工具,可以创建多个格式的压缩包,如 .zip.tar.7z 等。

示例:

bashCopy Code
7z a archive.7z *.txt
7z a archive.zip *.txt
7z a archive.tar *.txt
  • 这样,你会得到 .7z.zip 和 .tar 格式的压缩文件,方便不同操作系统和工具使用。

145. 使用 -sdel 自动删除原文件

7-Zip 提供了一个选项,允许你在压缩后自动删除原文件。如果你希望在压缩完成后立即清理源文件,可以使用 -sdel 参数。

示例:

bashCopy Code
7z a -sdel archive.7z *.txt
  • -sdel:压缩完成后,自动删除 *.txt 文件。

这些技巧可以帮助你更高效地使用 7-Zip,解决一些在日常文件管理、压缩和解压中的常见问题。


扩展更多关于使用 7-Zip 的技巧和命令行用法:

146. 批量创建压缩包并分割成多个部分

当你需要将大文件或文件夹分割成多个部分进行存储或传输时,7-Zip 可以通过分卷压缩来实现。你可以指定每个分卷的大小。

示例:

bashCopy Code
7z a -v500m archive.7z *.txt
  • -v500m:将压缩包分割成 500 MB 的多个分卷。最终会得到多个文件,如 archive.7z.001archive.7z.002 等。
  • 注意:解压时需要从 .001 文件开始,7-Zip 会自动连接后续的分卷进行解压。

147. 通过命令行批量压缩特定文件类型

如果你希望仅压缩特定类型的文件,例如所有 .jpg 文件,7-Zip 支持通过通配符进行批量选择。

示例:

bashCopy Code
7z a archive.7z *.jpg
  • 这条命令会将当前目录下所有 .jpg 文件压缩成一个 archive.7z 文件。

148. 检查压缩包的完整性

7-Zip 提供了检查压缩包完整性的功能。如果你不确定压缩包是否损坏,可以使用 t 命令进行验证。

示例:

bashCopy Code
7z t archive.7z
  • t:检查压缩包 archive.7z 的完整性。如果包没有问题,命令行会显示“Everything is Ok”,如果损坏,它会报告错误信息。

149. 解压压缩包到指定目录并覆盖已有文件

当解压文件时,有时你可能希望将文件解压到目标目录,并自动覆盖已存在的文件。可以使用 -aoa 选项来实现。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles -aoa
  • -aoa:自动覆盖目标目录中已存在的文件。如果没有此选项,7-Zip 默认会询问是否覆盖。

150. 解压文件时排除某些文件

你可以在解压时排除某些文件,以避免解压整个压缩包中的所有内容。

示例:

bashCopy Code
7z x archive.7z -oC:\ExtractedFiles -x!*.log
  • -x!*.log:排除所有 .log 文件不被解压。

151. 创建包含文件夹结构的压缩包

7-Zip 默认会保留文件夹结构,但如果你不希望这样,可以通过 -sdel 选项来去掉路径信息。要保留文件夹结构并压缩整个目录,可以使用以下命令。

示例:

bashCopy Code
7z a archive.7z C:\Documents\
  • 这条命令会将 C:\Documents 文件夹中的所有文件和子文件夹压缩成 archive.7z,保留文件夹结构。

152. 压缩多个目录并保持目录结构

当你需要压缩多个不同目录中的文件,同时保持它们的结构,可以在命令行中指定多个目录。

示例:

bashCopy Code
7z a archive.7z C:\Documents\ D:\Pictures\
  • 这会将 C:\Documents 和 D:\Pictures 中的所有文件压缩成一个 archive.7z 文件,并保留各自的目录结构。

153. 删除旧的备份文件

有时候,压缩完一个新的备份后,你可能希望删除旧的备份文件。你可以在压缩后自动删除指定的旧文件。

示例:

bashCopy Code
7z a archive.7z C:\Backup\ -sdel
  • -sdel:在压缩后,删除 C:\Backup\ 中的原始文件。

154. 使用 -mmt 优化多核 CPU 使用

7-Zip 支持多线程压缩,默认情况下会自动分配线程数,但你可以手动调整线程数以提高性能。对于多核处理器,使用更多线程可以显著提高压缩速度。

示例:

bashCopy Code
7z a archive.7z *.txt -mmt=on
  • -mmt=on:启用多线程压缩。

如果你知道你的 CPU 核心数,可以直接指定线程数来优化性能:

bashCopy Code
7z a archive.7z *.txt -mmt=8
  • -mmt=8:使用 8 个线程进行压缩,通常在多核 CPU 上能加速压缩过程。

155. 根据文件日期压缩文件

有时你只想压缩最近修改的文件,7-Zip 允许你使用文件的日期属性来过滤文件进行压缩。比如,你只想压缩过去 7 天内修改过的文件。

示例:

bashCopy Code
7z a archive.7z *.txt -mmt=on -r
  • -r:递归包含子文件夹中的文件。

如果你需要根据文件修改日期筛选文件,可以在压缩前通过命令行的其他工具进行筛选,或者使用 7-Zip 自带的脚本功能。

156. 压缩后备份文件到特定云存储

通过结合使用 7-Zip 和云存储工具,你可以将备份文件直接压缩后上传到云端。假设你已经安装了像 rclone 这样的工具,可以将压缩文件上传到 Google Drive、OneDrive 或其他云存储。

示例:

bashCopy Code
7z a archive.7z C:\Backup\ && rclone copy archive.7z remote:backup/
  • rclone copy archive.7z remote:backup/:将压缩后的 archive.7z 文件上传到名为 remote 的云存储的 backup 文件夹。

157. 通过命令行控制压缩包的创建时间

7-Zip 允许用户设置压缩包的创建时间戳,使其符合特定要求。例如,有时需要将压缩包的时间设为某个特定的时间。

示例:

bashCopy Code
7z a archive.7z *.txt -mtc=2024-11-01
  • -mtc=2024-11-01:设置压缩包的创建时间为 2024 年 11 月 1 日。

158. 压缩日志文件以节省存储空间

对于日志文件,可以通过设置高压缩比来节省存储空间。日志文件通常是纯文本,压缩比可以达到很高。

示例:

bashCopy Code
7z a -mx=9 logfiles.7z *.log
  • -mx=9:设置压缩比为最高级别,以最大程度地减少文件大小。

159. 使用 -p 创建带有密码的加密压缩包

加密压缩包的内容,确保只有输入密码的人才能访问其中的文件。

示例:

bashCopy Code
7z a -pMySecretPassword -mhe archive.7z *.txt
  • -pMySecretPassword:为压缩包设置密码。
  • -mhe:加密文件名,确保即使没有密码,压缩包的内容也无法查看。

160. 快速压缩大文件使用 LZMA2 算法

对于非常大的文件,LZMA2 算法可以在确保较高压缩比的同时,提供更好的压缩速度和更低的内存使用。

示例:

bashCopy Code
7z a archive.7z largefile.iso -mx=9 -ms=on
  • -ms=on:启用大字典支持,使 LZMA2 算法在处理大文件时更加高效。

以上技巧展示了 7-Zip 在压缩、解压、文件管理方面的强大功能,通过掌握这些命令行技巧,可以大大提高工作效率,轻松应对各种文件压缩任务。


更多 7-Zip 的高级用法和命令行技巧,帮助你更高效地使用这一工具:

161. 使用 -m0 选择不同的压缩方法

7-Zip 支持多种压缩方法,可以通过 -m0 选项来指定压缩算法。除了默认的 LZMA,7-Zip 还支持其他算法如 PPMDBZIP2

示例:

bashCopy Code
7z a archive.7z -m0=bzip2 *.txt
  • -m0=bzip2:使用 bzip2 算法进行压缩,适用于需要更高压缩比的场景。

162. 分卷压缩时指定分卷大小

7-Zip 支持将压缩文件分成多个小部分,便于分发或存储。你可以使用 -v 选项指定每个分卷的大小。

示例:

bashCopy Code
7z a -v100m archive.7z *.mp4
  • -v100m:将压缩包分割成 100 MB 大小的分卷(如 archive.7z.001archive.7z.002 等)。
  • 注意:在解压时,从 .001 文件开始解压,7-Zip 会自动处理所有分卷。

163. 删除原始文件(压缩后删除)

7-Zip 允许在压缩文件时直接删除原始文件。可以使用 -sdel 选项实现。

示例:

bashCopy Code
7z a archive.7z C:\Files\ -sdel
  • -sdel:在压缩完成后删除 C:\Files\ 文件夹中的原始文件。

164. 查看压缩包的详细信息

如果你想查看压缩包的详细信息(如文件列表、压缩比、大小等),可以使用 l 命令。

示例:

bashCopy Code
7z l archive.7z
  • l:列出 archive.7z 中的所有文件及其详细信息。

165. 列出压缩包中某个文件的详细信息

你可以查看压缩包中特定文件的详细信息,例如大小、时间戳等。

示例:

bashCopy Code
7z l archive.7z file.txt
  • 这会列出 archive.7z 中的 file.txt 文件的详细信息。

166. 提取特定文件到目标文件夹

7-Zip 允许你从压缩包中提取某个特定文件到指定目录,而无需解压整个压缩包。

示例:

bashCopy Code
7z e archive.7z file.txt -oC:\ExtractedFiles\
  • e:提取指定的文件 file.txt
  • -oC:\ExtractedFiles\:指定提取路径。

167. 以最低压缩比压缩文件(提高速度)

如果你需要更快的压缩速度而不关心压缩比,可以通过设置最低的压缩比来实现。

示例:

bashCopy Code
7z a -mx=1 archive.7z *.txt
  • -mx=1:设置最低压缩比,这将大大提高压缩速度,但文件会相对较大。

168. 自定义压缩字典大小

LZMA(以及 LZMA2)算法的压缩效率与字典大小有关。较大的字典通常能提供更高的压缩比,但也需要更多的内存。通过 -md 选项,可以自定义字典大小。

示例:

bashCopy Code
7z a archive.7z *.txt -md=128m
  • -md=128m:指定字典大小为 128 MB。

169. 使用 .7z 作为默认压缩格式

默认情况下,7-Zip 使用 .7z 文件扩展名,但你也可以自定义压缩包的扩展名。为便于管理,你可以创建 .7z 格式的压缩包。

示例:

bashCopy Code
7z a myarchive.7z C:\Folder\*
  • 这将会将 C:\Folder\ 目录中的所有文件压缩为 myarchive.7z

170. 自动压缩并上传文件到 FTP 服务器

结合 7-Zip 和 FTP 工具(如 curllftp),你可以自动压缩文件并上传到 FTP 服务器。

示例:

bashCopy Code
7z a archive.7z C:\Backup\ && lftp -e "put archive.7z; quit" -u username,password ftp://ftp.example.com/
  • 先压缩 C:\Backup\ 目录,然后将 archive.7z 上传到 FTP 服务器。

171. 排除特定类型的文件

你可以在压缩时排除特定类型的文件,例如不压缩 .log.tmp 文件。

示例:

bashCopy Code
7z a archive.7z *.txt -x!*.log -x!*.tmp
  • -x!*.log:排除所有 .log 文件。
  • -x!*.tmp:排除所有 .tmp 文件。

172. 使用多线程解压

解压大文件时,使用多线程解压可以大大提高速度。通过 -mmt 选项,7-Zip 允许使用多核 CPU 来加速解压。

示例:

bashCopy Code
7z x archive.7z -mmt=on
  • -mmt=on:启用多线程解压。

173. 限制压缩时的内存使用

在一些资源有限的环境中,可能需要限制 7-Zip 使用的内存。你可以使用 -mmt-mx 选项来控制内存使用。

示例:

bashCopy Code
7z a archive.7z *.txt -mx=9 -mmt=2
  • -mx=9:最大压缩比。
  • -mmt=2:限制使用 2 个线程进行压缩。

174. 通过管道传输文件

7-Zip 也支持通过管道(pipe)将文件流传输到其他程序。通过这种方式,你可以将压缩文件直接传输到另一个应用程序,避免存储中间文件。

示例:

bashCopy Code
7z a -so archive.7z *.txt | somecommand
  • -so:表示将输出流直接发送到标准输出(即管道),而不是生成文件。接着可以将这个输出流传给其他命令或程序处理。

175. 通过批处理脚本自动化压缩任务

7-Zip 可以与批处理脚本结合使用,自动化压缩任务。例如,定期备份文件并压缩成 7z 格式。

示例:

Copy Code
@echo off
7z a C:\Backups\backup_$(date +%Y-%m-%d).7z C:\Documents\
  • 这将会根据当前日期(如 backup_2024-11-17.7z)创建一个新的压缩包,并将 C:\Documents\ 目录中的文件压缩到该压缩包中。

176. 自动备份并清理旧文件

7-Zip 可以用于自动备份并清理过期的文件。你可以定期压缩文件夹,并删除旧的备份文件以节省空间。

示例:

Copy Code
@echo off
7z a C:\Backups\backup_$(date +%Y-%m-%d).7z C:\Documents\
forfiles /p C:\Backups\ /m *.7z /d -30 /c "cmd /c del @file"
  • 这会备份 C:\Documents\ 目录并将压缩包存储到 C:\Backups\,同时删除 30 天前的旧备份文件。

177. 通过 SFX 模式创建自解压文件

7-Zip 支持将压缩包转化为自解压文件(SFX),这意味着目标用户不需要安装 7-Zip 就能解压文件。

示例:

bashCopy Code
7z a -sfx archive.exe *.txt
  • -sfx:生成一个自解压的 .exe 文件,用户只需双击执行文件即可自动解压。

178. 通过 -sdel 删除压缩时的文件

在完成压缩任务后,可以使用 -sdel 选项删除原始文件,确保不会占用额外的磁盘空间。

示例:

bashCopy Code
7z a archive.7z C:\Data\ -sdel
  • -sdel:在压缩完成后
  • 在压缩完成后,删除原始文件,这样可以节省存储空间。

179. 压缩并加密文件

7-Zip 支持加密压缩文件,你可以使用 -p 选项来指定一个密码。加密的压缩包只能通过正确的密码解压。

示例:

bashCopy Code
7z a -pMySecretPassword archive.7z *.txt
  • -pMySecretPassword:为压缩包指定密码 "MySecretPassword"。在解压时,需要输入相同的密码才能访问文件。

180. 使用正则表达式匹配文件

7-Zip 支持通过正则表达式来匹配文件名,可以非常灵活地选择需要压缩或解压的文件。

示例:

bashCopy Code
7z a archive.7z *.log -x!*.old
  • -x!*.old:排除所有以 .old 为后缀的文件。
  • *.log:只匹配 .log 文件。

181. 查看压缩包的文件权限

7-Zip 还可以查看压缩包中文件的权限信息,尤其对于 Linux 和其他类 Unix 系统有用。

示例:

bashCopy Code
7z l archive.7z
  • l:列出压缩包内的文件以及它们的权限和其他详细信息(如大小、日期等)。

182. 通过 -mhe=on 加密文件名

除了加密文件内容,7-Zip 还支持加密文件名。启用此功能后,压缩包内的文件名将被加密,避免泄漏文件信息。

示例:

bashCopy Code
7z a -pMySecretPassword -mhe=on archive.7z *.txt
  • -mhe=on:启用文件名加密。
  • -pMySecretPassword:加密文件内容,并设置密码。

183. 查看压缩包的压缩率

7-Zip 提供了查看压缩率的选项。在压缩时,可以观察每个文件的压缩比。

示例:

bashCopy Code
7z a archive.7z *.txt -bb1
  • -bb1:显示压缩进度、压缩比和其他详细信息。使用 -bb2 或 -bb3 可以显示更多详细的日志。

184. 使用 .tar 格式进行压缩

7-Zip 不仅支持 .7z 格式,还支持将文件打包为 .tar 格式,特别适用于 Linux 或 Unix 系统。

示例:

bashCopy Code
7z a archive.tar *.txt
  • archive.tar:将 *.txt 文件打包成 .tar 格式。

185. 解压 .tar.gz 或 .tgz 文件

如果你需要解压 .tar.gz.tgz 文件,可以直接使用 7-Zip 进行处理。

示例:

bashCopy Code
7z x archive.tar.gz
  • x:解压 .tar.gz 文件。
  • 7-Zip 会自动处理 .tar 文件中的 .gz 压缩。

186. 备份并忽略文件修改日期

7-Zip 提供了 -mtc=off 选项来忽略文件修改日期,从而减少备份时的差异。

示例:

bashCopy Code
7z a -mtc=off archive.7z C:\Documents\
  • -mtc=off:忽略文件修改日期,只考虑文件内容进行备份。

187. 删除空目录

如果你希望在压缩文件时自动删除空目录,可以使用 -sdel 选项。

示例:

bashCopy Code
7z a archive.7z C:\Folder\ -sdel
  • -sdel:在压缩完成后删除原始文件和空目录。

188. 使用 Windows 环境变量作为路径

在批处理脚本或命令行中,你可以使用 Windows 环境变量来指定路径,使得脚本更具可移植性。

示例:

bashCopy Code
7z a %USERPROFILE%\Documents\archive.7z C:\Folder\*
  • %USERPROFILE%\Documents\:将压缩包保存到当前用户的文档目录中。

189. 根据日期选择文件进行压缩

你可以选择按文件的创建日期或修改日期来过滤要压缩的文件。例如,可以仅压缩过去 7 天内修改过的文件。

示例:

bashCopy Code
7z a archive.7z C:\Folder\* -d"2024-11-10"
  • -d"2024-11-10":只压缩 2024 年 11 月 10 日及之后修改过的文件。

190. 压缩文件并自动为压缩包添加时间戳

你可以在压缩包的文件名中自动添加时间戳,使得每个压缩包的名称都独一无二。

示例:

Copy Code
@echo off
set date=%date:~10,4%%date:~4,2%%date:~7,2%
7z a archive_%date%.7z C:\Documents\
  • 该脚本会自动在压缩包的文件名中添加当前日期(例如:archive_20241117.7z)。

191. 生成完整路径的压缩包

你可以在压缩时指定包括完整路径,以确保压缩包中的文件按正确的文件结构存储。

示例:

bashCopy Code
7z a archive.7z -spf C:\Users\Username\Documents\
  • -spf:保存文件的完整路径。

192. 测试压缩包的完整性

7-Zip 提供了测试压缩包完整性的选项,可以用来确保压缩包没有损坏。

示例:

bashCopy Code
7z t archive.7z
  • t:测试 archive.7z 的完整性,确保压缩包没有问题。

193. 恢复损坏的压缩文件

如果你遇到损坏的压缩文件,可以尝试使用 7-Zip 的恢复选项来修复文件。

示例:

bashCopy Code
7z x archive.7z -r
  • -r:在解压时,尝试恢复损坏的压缩包。

194. 加密压缩包中的文件并使用默认密码

你可以为压缩包中的所有文件设置加密密码,并通过 -p 选项提供密码。

示例:

bashCopy Code
7z a -pMyPassword -mhe=on archive.7z *.docx
  • -pMyPassword:为所有文件设置密码 "MyPassword"
  • -mhe=on:加密文件名。

195. 使用自定义压缩级别

你可以使用 -mx 选项设置自定义的压缩级别,选择适合不同需求的压缩级别。

示例:

bashCopy Code
7z a archive.7z *.jpg -mx=5
  • -mx=5:选择一个中等的压缩级别。

这些高级命令和选项能够帮助你更高效地使用 7-Zip 进行文件压缩、解压、备份、加密以及自动化任务。通过结合不同的选项,你可以根据需求调整压缩效果、速度、内存使用等,从而优化你的工作流。


196. 使用 -v 分卷压缩

7-Zip 允许将压缩包分割成多个小文件(分卷压缩)。这在处理大文件时非常有用,可以将文件拆分成更小的部分,便于传输或存储。

示例:

bashCopy Code
7z a -v100m archive.7z *.iso
  • -v100m:将压缩包分割成 100MB 大小的多个卷文件(例如 archive.7z.001archive.7z.002 等)。
  • *.iso:指定压缩的文件或目录。

197. 创建和管理自解压压缩包

7-Zip 支持创建自解压的压缩包,即压缩包本身可以作为一个可执行文件(.exe),无需 7-Zip 安装即可解压。

示例:

bashCopy Code
7z a -sfx7z.sfx archive.exe *.txt
  • -sfx7z.sfx:指定创建自解压压缩包。
  • archive.exe:输出文件将是一个可执行的自解压压缩包。
  • *.txt:压缩的文件。

198. 设置压缩包注释

你可以为压缩包添加注释,这对于文件的描述或说明非常有用。压缩包的注释将被保存在压缩包中,并且在解压时可以查看。

示例:

bashCopy Code
7z a archive.7z *.jpg -z"Backup files from vacation"
  • -z"Backup files from vacation":为压缩包添加注释 "Backup files from vacation"

199. 设置文件排除列表

如果你有一个包含很多文件的目录,但只想压缩特定的文件,可以使用排除列表文件。排除列表文件列出了不应被压缩的文件和目录。

示例:

  1. 创建排除列表文件 exclude.txt,其中包含要排除的文件或目录。
    Copy Code
    *.log
    *.tmp
    folder_to_exclude\
  2. 使用排除列表文件来进行压缩:
    bashCopy Code
    7z a archive.7z -xr@exclude.txt *
  • -xr@exclude.txt:使用排除列表 exclude.txt,排除其中列出的文件和目录。

200. 在压缩时限制 CPU 使用

在进行大规模压缩时,你可能希望限制 7-Zip 使用的 CPU 资源,以避免影响系统性能。可以通过设置 -mx 级别来调整压缩效率与 CPU 使用之间的平衡。

示例:

bashCopy Code
7z a -mx=3 archive.7z *.mp4
  • -mx=3:设置一个较低的压缩级别,减轻 CPU 负担。压缩级别 -mx=0 为最轻,-mx=9 为最强。

201. 设置密码的复杂性要求

7-Zip 允许你设置密码复杂性要求,如密码必须包含大小写字母、数字和特殊字符等,以提高密码安全性。

示例:

bashCopy Code
7z a -pMyC0mpl3x#Password archive.7z *.pdf
  • -pMyC0mpl3x#Password:设置一个包含字母、数字和特殊字符的复杂密码。

202. 在压缩时更新压缩包

你可以使用 u 命令选项更新一个已经存在的压缩包,只压缩新增的文件或修改过的文件。

示例:

bashCopy Code
7z u archive.7z *.jpg
  • u:更新 archive.7z 中已经存在的文件,只将修改过或新增的文件添加到压缩包中。

203. 自动化备份任务

通过批处理脚本或计划任务,你可以使用 7-Zip 自动进行备份操作,例如每天晚上自动备份某个目录。

示例(批处理脚本):

Copy Code
@echo off
set today=%date:~10,4%%date:~4,2%%date:~7,2%
7z a "Backup_%today%.7z" C:\ImportantFiles\
  • set today=%date:~10,4%%date:~4,2%%date:~7,2%:获取当前日期并格式化为 yyyyMMdd 形式。
  • 7z a "Backup_%today%.7z" C:\ImportantFiles\:创建一个以当前日期命名的压缩包。

204. 通过命令行脚本进行远程解压

你可以通过远程服务器上的命令行工具使用 7-Zip 解压文件。例如,使用 ssh 登录到远程主机并执行 7-Zip 命令。

示例:

bashCopy Code
ssh user@remote_host '7z x /path/to/archive.7z -o/path/to/output/'
  • 7z x:在远程主机上解压文件。
  • -o/path/to/output/:指定解压后的文件存储路径。

205. 使用 SHA256 校验和验证文件完整性

你可以使用 7-Zip 生成并验证压缩包的校验和,确保文件在传输或存储过程中没有损坏。

示例:

生成 SHA256 校验和:

bashCopy Code
7z h archive.7z
  • h:显示文件的哈希值(如 MD5、SHA1、SHA256 等)。

206. 自动化压缩和备份(使用计划任务)

你可以通过 Windows 任务计划程序设置 7-Zip 自动执行定期压缩任务。例如,每天晚上 11 点压缩某个目录并将其保存为以日期命名的文件。

  1. 打开任务计划程序。
  2. 创建新的任务,设置触发条件为每日 11 点。
  3. 在“操作”中选择“启动程序”,并输入 7-Zip 命令:
    bashCopy Code
    "C:\Program Files\7-Zip\7z.exe" a "C:\Backups\Backup_%date:~10,4%%date:~4,2%%date:~7,2%.7z" "C:\ImportantFiles\"

207. 通过脚本实现批量压缩

你可以通过脚本实现批量压缩不同类型的文件。例如,批量压缩多个文件夹中的文件,并将压缩包保存到特定目录。

示例:

Copy Code
@echo off
for /d %%i in (C:\Folder\*) do (
  7z a "C:\Backups\%%~ni.7z" "%%i\*"
)
  • for /d %%i in (C:\Folder\*):循环遍历 C:\Folder\ 下的所有子文件夹。
  • 7z a "C:\Backups\%%~ni.7z" "%%i\*":为每个文件夹创建一个压缩包,文件名为文件夹名。

208. 压缩并保持原文件时间戳

有时你需要保持压缩文件的原始时间戳,可以通过 -mtc 选项实现。

示例:

bashCopy Code
7z a -mtc=on archive.7z *.txt
  • -mtc=on:在压缩时保持文件的修改时间戳。

209. 快速压缩(使用最快的压缩方法)

如果你需要快速压缩文件,7-Zip 提供了 -mx=0 选项,它会使用最快的压缩方式,但压缩率相对较低。

示例:

bashCopy Code
7z a -mx=0 archive.7z *.mp4
  • -mx=0:使用最快的压缩方法,适用于不要求高压缩率的情况。

这些高级选项和命令可以帮助你根据不同的需求来高效地使用 7-Zip,从批量处理、自动化任务到加密、分卷和备份等应用,灵活性和功能性都得到了极大的提升。


补充更多的 7-Zip 使用技巧和高级功能:

210. 提取指定文件类型

如果压缩包中包含多种类型的文件,但你只想提取某一类文件,可以通过指定文件类型来提取。

示例:

bashCopy Code
7z x archive.7z *.jpg -oC:\ExtractedImages\
  • *.jpg:只提取 .jpg 文件。
  • -oC:\ExtractedImages\:指定解压路径。

211. 查看压缩包内容

你可以查看压缩包中的文件列表,而不需要完全解压。

示例:

bashCopy Code
7z l archive.7z
  • l:列出压缩包中的文件,而不进行解压。

212. 解压时保持原目录结构

7-Zip 会自动保留文件的目录结构。如果压缩包中有文件夹,解压时这些文件夹会被恢复。如果你只希望解压文件,而不恢复目录结构,可以使用 -aoa 选项。

示例:

bashCopy Code
7z x archive.7z -aoa
  • -aoa:覆盖所有文件,并不保留原有的目录结构。

213. 分卷压缩与自解压结合

你可以将分卷压缩与自解压功能结合,使得分割后的压缩文件仍然能够自解压,便于分发和解压。

示例:

bashCopy Code
7z a -v100m -sfx7z.sfx archive.exe *.txt
  • -v100m:将压缩包分割成 100MB 大小的卷文件。
  • -sfx7z.sfx:创建自解压的文件。

214. 解压并按文件扩展名分类

通过批量解压并自动按文件类型进行分类,可以让解压后的文件更有条理。你可以使用脚本来实现。

示例(批处理脚本):

Copy Code
@echo off
for /r %%i in (*.zip) do (
  7z x "%%i" -o"%%~dpi"
)
  • for /r %%i in (*.zip):遍历所有 .zip 文件。
  • -o"%%~dpi":将文件解压到源文件所在的目录。

215. 压缩时排除某些文件类型

在压缩时,你可能不想包含某些类型的文件。例如,排除所有的临时文件或日志文件,可以通过 -xr! 来实现。

示例:

bashCopy Code
7z a archive.7z *.txt -xr!*.log
  • -xr!*.log:排除所有 .log 文件。

216. 设置压缩包的完整性检查

你可以设置 7-Zip 在压缩包创建后进行完整性检查,确保数据没有损坏。这是尤其在处理大文件时特别重要。

示例:

bashCopy Code
7z a -t7z archive.7z *.zip -mmt=on
  • -mmt=on:启用多线程压缩,提高压缩速度。
  • -t7z:指定压缩包格式为 .7z

217. 基于日期创建压缩包

如果你只想压缩某个特定日期之后的文件,可以通过批处理脚本结合文件的修改日期来实现。

示例(批处理脚本):

Copy Code
@echo off
for /r %%i in (*.txt) do (
  if %%~ti GEQ 2024-11-01 (
    7z a archive.7z "%%i"
  )
)
  • %%~ti:获取文件的修改日期。
  • GEQ:表示大于等于某个日期。

218. 设置文件压缩级别

7-Zip 提供了多个压缩级别,能够平衡压缩速度和压缩率。通过 -mx 参数可以选择不同的压缩级别。

示例:

bashCopy Code
7z a -mx=9 archive.7z *.avi
  • -mx=9:使用最高压缩级别(压缩速度较慢,但压缩率最高)。
  • -mx=0:使用最快压缩方式,适用于不要求高压缩率的情况。

219. 压缩并指定注释

你可以为压缩包添加注释,这对于记录压缩包的内容、用途或其他说明非常有用。

示例:

bashCopy Code
7z a archive.7z *.txt -z"Backup of important files"
  • -z"Backup of important files":为压缩包添加注释。

220. 将文件压缩为多个格式

7-Zip 支持多种压缩格式,比如 .zip, .7z, .tar 等。你可以选择不同的压缩格式,根据不同的需求来使用。

示例:

bashCopy Code
7z a archive.zip *.mp3
  • archive.zip:输出 .zip 格式的压缩包。

221. 通过脚本进行自动化备份

可以通过批处理脚本将指定的文件或文件夹自动备份,并根据日期进行命名。

示例(批处理脚本):

Copy Code
@echo off
set today=%date:~10,4%%date:~4,2%%date:~7,2%
7z a "Backup_%today%.7z" C:\Documents\
  • set today=%date:~10,4%%date:~4,2%%date:~7,2%:获取当前日期并格式化为 yyyyMMdd 形式。
  • 7z a "Backup_%today%.7z" C:\Documents\:根据当前日期创建备份文件。

222. 将压缩包中的文件解压到指定路径

你可以将压缩包中的内容解压到一个特定的路径,不解压到当前目录。

示例:

bashCopy Code
7z x archive.7z -oC:\Backup\
  • -oC:\Backup\:指定解压路径。

223. 解压密码保护的文件

如果压缩包是密码保护的,解压时需要提供密码。可以通过 -p 参数来提供密码。

示例:

bashCopy Code
7z x archive.7z -pMySecretPassword -oC:\Extracted\
  • -pMySecretPassword:提供解压密码。
  • -oC:\Extracted\:指定解压路径。

224. 批量解压多个文件

你可以通过批处理脚本一次性解压多个文件。

示例(批处理脚本):

Copy Code
@echo off
for %%i in (*.zip) do (
  7z x "%%i" -o"%%~dpi"
)
  • for %%i in (*.zip):循环遍历当前目录下所有 .zip 文件。
  • -o"%%~dpi":将文件解压到压缩包所在目录。

225. 使用 7-Zip 进行加密文件压缩

你可以使用 7-Zip 加密文件,这样压缩包内的内容在没有密码的情况下无法被访问。

示例:

bashCopy Code
7z a -pMyPassword -mhe archive.7z *.docx
  • -pMyPassword:设置密码。
  • -mhe:启用文件头加密,使得压缩包的内容即使知道文件名也无法被访问。

这些技巧和命令可以帮助你更加高效地使用 7-Zip,尤其是在自动化、加密、压缩大文件、批量处理等方面。无论是日常的备份操作,还是处理大数据文件,7-Zip 都能提供强大的支持。


补充更多的 7-Zip 高级技巧和功能,帮助你更高效地使用这个工具。

226. 使用自定义脚本自动化压缩任务

你可以编写自定义脚本来自动化压缩和备份任务。这对于定期备份或处理大量文件非常有用。

示例(批处理脚本):

Copy Code
@echo off
set folder=C:\ImportantFiles
set backupdir=C:\Backup
set filename=Backup_%%date:~-4%%date:~4,2%%date:~7,2%.7z

7z a "%backupdir%\%filename%" "%folder%\*"
  • set folder=C:\ImportantFiles:设置需要备份的文件夹路径。
  • set backupdir=C:\Backup:设置备份文件保存的路径。
  • set filename=Backup_%%date:~-4%%date:~4,2%%date:~7,2%.7z:根据当前日期命名压缩包。
  • 7z a:将文件压缩成 7z 格式。

227. 通过指定密码加密压缩文件

如果你希望压缩包内的文件不能被未经授权的人访问,可以加密压缩包并设置密码。

示例:

bashCopy Code
7z a archive.7z -pMySecretPassword -mhe *.txt
  • -pMySecretPassword:为压缩包设置密码。
  • -mhe:启用文件头加密,使得即使知道文件名,也无法查看文件内容。

228. 用 7-Zip 创建可自解压的加密文件

如果你希望加密并且使压缩包可以自解压,可以使用 .exe 格式的自解压压缩包,这样即使目标系统没有安装 7-Zip,也可以解压文件。

示例:

bashCopy Code
7z a -pMySecretPassword -mhe -sfx7z.sfx archive.exe *.txt
  • -sfx7z.sfx:创建一个自解压的 .exe 文件。
  • -pMySecretPassword:设置密码。
  • -mhe:启用文件头加密。

229. 压缩并在不同文件夹中分配多个卷

如果你需要将文件压缩并分割成多个卷,并且将每个卷放在不同的文件夹中,可以通过指定不同的输出路径来实现。

示例:

bashCopy Code
7z a -v100m -oC:\Backup\Archive1 archive.7z *.txt
7z a -v100m -oD:\Backup\Archive2 archive.7z *.jpg
  • -v100m:每个卷的大小为 100MB。
  • -oC:\Backup\Archive1-oD:\Backup\Archive2:分别指定不同的解压路径。

230. 将多个文件压缩成一个分卷文件

你可以将多个文件压缩成一个大文件,并自动分割成若干个小文件,以便于传输或存储。

示例:

bashCopy Code
7z a -v50m archive.7z *.mp4
  • -v50m:将文件压缩成每个 50MB 大小的卷。

231. 排除特定文件夹或文件类型

在压缩文件时,可以排除某些不需要的文件或文件夹。通过使用 -xr! 来排除特定的文件或目录。

示例:

bashCopy Code
7z a archive.7z *.docx -xr!*.tmp -xr!C:\Temp\
  • -xr!*.tmp:排除所有 .tmp 文件。
  • -xr!C:\Temp\:排除 C:\Temp\ 文件夹。

232. 查看和修改压缩包的属性

7-Zip 允许你查看并修改压缩包的属性。比如查看压缩包的大小、修改时间、文件列表等。

示例:

bashCopy Code
7z l archive.7z
  • l:列出压缩包中的文件。

233. 使用文件列表批量压缩

如果你有一个包含大量文件的列表,并且需要批量压缩这些文件,可以使用文件列表功能。

示例:

bashCopy Code
7z a archive.7z @filelist.txt
  • @filelist.txt:文件列表,每行列出需要压缩的文件。

234. 使用正则表达式进行文件筛选

7-Zip 支持使用正则表达式来筛选文件,可以更灵活地选择要压缩的文件。

示例:

bashCopy Code
7z a archive.7z *.jpg -x!*.png
  • -x!*.png:排除所有 .png 文件。

235. 创建以时间戳为名称的压缩包

你可以根据当前时间创建压缩包,确保每次备份的文件名都是唯一的。

示例:

bashCopy Code
set timestamp=%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%
7z a "Backup_%timestamp%.7z" C:\ImportantFiles\
  • %date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%:生成一个基于当前日期和时间的唯一时间戳。

236. 设置密码进行加密并隐藏文件名

为了增加安全性,你可以在创建压缩包时加密文件,并隐藏文件名。即使有人知道压缩包的文件名,也无法查看其中的内容。

示例:

bashCopy Code
7z a -pMySecretPassword -mhe -y archive.7z *.pdf
  • -mhe:启用文件头加密。
  • -y:自动确认操作,避免出现提示。

237. 将文件按文件大小分类并压缩

如果你需要将文件根据大小进行分类,并分别压缩成不同的压缩包,可以使用脚本来实现。

示例(批处理脚本):

Copy Code
@echo off
for %%i in (*.txt) do (
    if %%~zi lss 1048576 (
        7z a small_files.7z "%%i"
    ) else (
        7z a large_files.7z "%%i"
    )
)
  • %%~zi:获取文件的大小,单位为字节(1048576 字节为 1MB)。
  • lss:如果文件大小小于 1MB,压缩到 small_files.7z,否则压缩到 large_files.7z

238. 压缩并排除只读文件

在压缩文件时,你可以排除系统文件和只读文件,这样可以避免压缩过程中出现错误。

示例:

bashCopy Code
7z a archive.7z *.txt -xr!*.readonly
  • -xr!*.readonly:排除所有以 .readonly 结尾的文件。

239. 解压到指定文件夹并保留文件权限

在某些操作系统(如 Linux 或 macOS)中,解压文件时可能需要保留文件的权限设置。你可以通过 7-Zip 保持文件的原始权限。

示例:

bashCopy Code
7z x archive.7z -oC:\Extracted -p
  • -p:保留文件的权限信息。

240. 查看压缩包中的文件详细信息

7-Zip 可以提供压缩包中文件的详细信息,如文件的日期、大小、属性等。

示例:

bashCopy Code
7z l -slt archive.7z
  • -slt:显示详细的文件列表信息,包括每个文件的日期、大小等。

这些技巧可以帮助你更加高效地使用 7-Zip,适用于各种文件管理和自动化场景,提升日常工作的效率。通过灵活运用这些高级功能,你可以大幅简化文件压缩、解压、加密和备份的工作。


探索更多 7-Zip 的高级技巧和功能,以进一步提升你的使用体验。

241. 创建自解压和加密的分卷文件

如果你希望将压缩文件分割成多个小卷,并且使得压缩包既能自解压又能加密,可以将自解压和分卷功能结合起来。

示例:

bashCopy Code
7z a -pMySecretPassword -mhe -v100m -sfx7z.sfx archive.exe *.jpg
  • -pMySecretPassword:设置压缩包密码。
  • -mhe:启用文件头加密,文件名也会被加密。
  • -v100m:每个分卷大小为 100MB。
  • -sfx7z.sfx:创建自解压的 .exe 文件。

这样,目标用户无需安装 7-Zip,也可以通过自解压的 .exe 文件提取压缩包内容,并且文件内容会被加密。

242. 批量压缩不同类型的文件

你可以根据文件类型批量压缩文件,将不同格式的文件压缩成不同的压缩包。例如,将所有 .txt 文件压缩为一个 .7z 文件,所有 .jpg 文件压缩为另一个 .7z 文件。

示例:

bashCopy Code
7z a text_files.7z *.txt
7z a image_files.7z *.jpg
  • 这样就可以按文件类型创建不同的压缩包,方便分类管理。

243. 解压到指定路径并覆盖已有文件

当你解压文件时,7-Zip 默认会提示你是否覆盖已存在的文件。如果你希望自动覆盖,可以使用 -y 选项。

示例:

bashCopy Code
7z x archive.7z -oC:\Extracted -y
  • -oC:\Extracted:指定解压路径。
  • -y:自动回答“是”,覆盖已存在的文件。

244. 解压并保持文件的完整目录结构

7-Zip 在解压时可以保持文件的原始目录结构。默认情况下,它会解压到当前目录,但你可以通过指定输出目录来确保目录结构被保留。

示例:

bashCopy Code
7z x archive.7z -oC:\Extracted\
  • -oC:\Extracted\:指定解压目标文件夹,保持文件的完整目录结构。

245. 批量提取文件

如果你有多个压缩包需要提取,可以使用批处理脚本一次性解压所有文件。

示例(批处理脚本):

Copy Code
@echo off
for %%i in (*.7z) do (
    7z x "%%i" -oC:\Extracted\
)
  • 该脚本会遍历当前文件夹中的所有 .7z 文件,并将其解压到 C:\Extracted\ 文件夹中。

246. 压缩并将每个文件单独分割成一个分卷

如果你想将每个文件单独压缩并分割成多个卷,可以使用以下命令。

示例:

bashCopy Code
7z a -v50m -sfx archive.7z *.txt
  • -v50m:每个分卷的大小为 50MB。
  • -sfx:创建自解压文件。

此命令会将每个 .txt 文件压缩成独立的分卷,并且支持自解压。

247. 只压缩文件并不压缩文件夹

如果你希望压缩文件但不包括文件夹(例如只压缩 .txt 文件),可以通过指定文件类型来排除文件夹。

示例:

bashCopy Code
7z a archive.7z *.txt
  • 该命令仅将当前目录中的 .txt 文件压缩成 archive.7z,不包括任何文件夹。

248. 设置压缩级别以优化性能

7-Zip 允许你根据不同的需求设置压缩级别。较高的压缩级别可以减少存储空间,但可能需要更多的 CPU 和时间资源。相反,较低的压缩级别可以加快压缩速度。

示例:

bashCopy Code
7z a -mx=9 archive.7z *.txt
  • -mx=9:设置压缩级别为最大(9),即最高压缩比。
  • -mx=1:设置压缩级别为最小(1),速度最快。

249. 将压缩包中的文件提取到原位置

你可以将压缩包中的文件解压到原始文件所在的位置,而不是指定的解压目录。

示例:

bashCopy Code
7z x archive.7z
  • 此命令将会解压 archive.7z 中的所有文件,并且将文件提取到其原始目录(即压缩包所在的目录)。

250. 创建带有注释的压缩包

7-Zip 允许你为压缩包添加注释,注释内容可以通过 7z l 命令查看。这对于记录压缩包的目的或其他相关信息非常有用。

示例:

bashCopy Code
7z a archive.7z *.txt -mmt=on -scsUTF-8 -z"Backup of important documents"
  • -z"Backup of important documents":为压缩包添加注释。

251. 创建并压缩磁盘映像文件

你可以使用 7-Zip 创建和压缩磁盘映像文件(例如 .iso 格式)。这样你可以将整个文件系统或目录压缩成一个映像文件,便于存储或备份。

示例:

bashCopy Code
7z a -tiso backup.iso C:\important_files\
  • -tiso:创建 ISO 格式的磁盘映像文件。
  • backup.iso:输出文件名。
  • C:\important_files\:待压缩的文件夹。

252. 自定义分卷大小

通过 -v 选项,你可以自定义压缩包的分卷大小。例如,按 MB、GB 或其他单位来分割压缩文件。

示例:

bashCopy Code
7z a -v5g archive.7z *.mp4
  • -v5g:将压缩包分割成每个 5GB 的分卷。

253. 备份并排除特定类型文件

在进行备份时,你可能希望排除一些临时文件或特定类型的文件。你可以通过排除选项来实现这一点。

示例:

bashCopy Code
7z a -xr!*.bak -xr!*.tmp backup.7z C:\ImportantData\
  • -xr!*.bak:排除所有 .bak 文件。
  • -xr!*.tmp:排除所有 .tmp 文件。

254. 查看压缩包的完整路径信息

7-Zip 支持显示压缩包中的完整路径,可以帮助你了解文件的组织结构。

示例:

bashCopy Code
7z l -slt archive.7z
  • -slt:列出压缩包中每个文件的详细信息,包括文件路径。

255. 从压缩包中提取文件并保留原文件名

你可以从压缩包中提取文件时,保留文件的原始名称和目录结构。

示例:

bashCopy Code
7z x archive.7z -oC:\Extracted
  • x:提取文件并保留目录结构。
  • -oC:\Extracted:指定解压路径。

256. 使用 7-Zip 作为默认压缩工具

你可以将 7-Zip 设置为默认的压缩工具,这样在文件资源管理器中右键单击文件时会显示 7-Zip 相关的压缩选项。

步骤:

  1. 打开 7-Zip 文件管理器。
  2. 在“工具”菜单中选择“选项”。
  3. 在“系统”选项卡中,勾选“将 7-Zip 设置为默认压缩工具”。

这样,你就可以通过右键菜单直接使用 7-Zip 压缩和解压文件,提升操作效率。


通过这些技巧,你能够更高效地管理和操作压缩文件。无论是日常备份、文件传输,还是批量处理和自动化任务,7-Zip 都是一个非常强大的工具。


 

posted @ 2024-11-17 18:29  suv789  阅读(403)  评论(0编辑  收藏  举报