本文主要介绍的是使用命令行方式来执行 7z 的 压缩 与 解压缩
所需材料:7z.exe、7z.dll
下载地址:http://www.7-zip.org/

7z支持格式:

  • 压缩 / 解压缩:
    7z, XZ, BZIP2, GZIP, TAR, ZIP
  • 仅解压缩:
    ARJ, CAB, CHM, CPIO, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, UDF, VHD, WIM, XAR, Z

常用命令示例:

1、添加文件到压缩包:

7z a package.7z .\product\* -r -mx=9

将当前product文件夹下所有文件压缩到package.7z,package.7z中的文件名不包含product\前缀。

7z a package.7z .\product\

将当前product文件夹下所有文件压缩到package.7z,package.7z中的文件名包含product\前缀。

  • a:
    表示add命令,即新建一个压缩文件,该压缩文件存放在当前目录下
  • -r:
    表示遍历所有的子目录,每个文件都执行压缩操作,添加到压缩文件中。
  • -mx:
    表示压缩等级,9级是最高等级。默认等级是5。

2、排除目录或文件

  • 排除bbb目录,所有的,任何目录下的bbb目录
    7zr a -t7z temp.7z ziptest/ -xr!bbb
  • 排除bbb文件,所有的,任何目录下的bbb文件
    7zr a -t7z temp.7z ziptest/ -x!bbb
  • 排除.svn目录
    7zr a -t7z temp.7z ziptest -xr!.svn
    7zip排除目录的路径里不能用当前目录 . ,如 -xr!./.svn,会过滤失败, .svn 还会压缩进去。

3、从压缩包中删除文件

7z d package.7z *.bak -r

从package.7z中删除所有的bak文件。加-r表示递归删除,即删除所有bak文件

4、释放文件

7z x package.7z -o.\mydir -aoa

释放package.7z文件到当前mydir文件夹

  • x:
    表示解压缩,并且使得压缩包内的文件所在的目录结构保持不变。
    如果希望解压缩后所有的文件都存放在同一个目录下,则使用 e 这个命令。
  • -o.\mydir
    表示把压缩包内的文件解压缩到 .\mydir 目录下。-o 这个参数用于指定输出目录。
  • -aoa:
    表示直接覆盖现有文件,而没有任何提示
    类似其他参数:
    -aos:跳过现有文件,其不会被覆盖。
    -aou:如果相同文件名的文件以存在,将自动重命名被释放的文件。Eg:文件 file.txt 将被自动重命名为 file_1.txt。
    -aot:如果相同文件名的文件以存在,将自动重命名现有的文件。Eg:文件 file.txt 将被自动重命名为 file_1.txt。

5、使用密码进行压缩与解压缩

7z a package-p.7z .\product\* -r -mx=9 -psecret

对.\product\下的文件进行压缩,解压时需要使用密码secret

7z x package-p.7z -o.\mydir -aoa -psecret

使用密码secret对package-p.7z进行解压