在Windows上用7-Zip实现批量压缩

7-zip是一个不错的解压缩工具, 除了界面丑点以外, 美中不足的就是没有批量压缩这个功能

7z的界面化操作, 实际是调用了命令行去执行解压缩, 既然知道了7z有命令行, 借助Windows的批处理(.bat)

理论上是可以实现批量压缩文件/文件夹这个功能

7-Zip下载

进入官网 https://www.7-zip.org 本站下载 7-Zip-x64

环境参数

  • 系统版本: Windows 11 Version 21H2
  • 7-Zip 安装位置: "D:\7-Zip\"
  • 7-Zip 版本: 7-Zip 21.06 (x64)

注意: 需要将 .bat 文件的编码设为 ANSI , 否则中文可能会出现乱码

压缩文件

7z_Bulk_Files.bat

1
2
for /f %%Z in ('dir /b') do "D:\7-Zip\7z.exe" a %%Z.7z %%Z
pause

参数说明:

  • "D:\7-Zip\7z.exe": 7-Zip的安装目录, 请自行替换为实际安装目录
  • %%Z: 临时存储文件名/路径的变量
  • %%Z.7z: 压缩后的文件名, %%Z需要与变量名一致
  • pause: 按任意键关闭PowerShell窗口(可省略)

测试目录树状图

└─ Test_Dir
   ├─ 7z_Bulk_Files.bat
   ├─ Bamboo.mp3
   ├─ img101.png
   └─ 图片100.jpg

在 Test_Dir 目录下执行 7z_Bulk_Files.bat

└─ Test_Dir
   ├─ 7z_Bulk_Files.bat.7z
   ├─ Bamboo.mp3.7z
   ├─ img101.png.7z
   └─ 图片100.jpg.7z

压缩文件(加密)

7z_Bulk_Encrypt_Files.bat

1
2
for /f %%Z in ('dir /b') do "D:\7-Zip\7z.exe" a %%Z.7z %%Z -phraulein.com -mhe
pause

参数说明:

  • "D:\7-Zip\7z.exe": 7-Zip的安装目录, 请自行替换为实际安装目录
  • -phraulein.com: 压缩文件的密码是 hraulein.com
  • -mhe: 加密文件名(可省略)

测试目录树状图

└─ Test_Dir
   ├─ 7z_Bulk_Encrypt_Files.bat
   ├─ img101.png
   ├─ img102.jpg
   ├─ 光年.mp3
   └─ 图片100.jpg

在 Test_Dir 目录下执行 7z_Bulk_Encrypt_Files.bat

└─ Test_Dir
   ├─ 7z_Bulk_Encrypt_Files.bat.7z
   ├─ img101.png.7z
   ├─ img102.jpg.7z
   ├─ 光年.mp3.7z
   └─ 图片100.jpg.7z

已知问题:

  • 文件名包含空格会导致该文件无法压缩
  • 会将bat脚本也一并压缩
  • 会将执行目录下的文件夹也一并压缩
  • 文件的原后缀不会"清除"

压缩目录

7z_Bulk_Folders.bat

1
2
for /d %%D in (.\*) do "D:\7-Zip\7z.exe" a "%%D.7z" "%%D\*"
pause

参数说明:

  • "D:\7-Zip\7z.exe": 7-Zip的安装目录, 请自行替换为实际安装目录
  • %%D: 临时存储目录路径的变量

测试目录树状图

└─ Test_Dir
   ├─ 7z_Bulk_Folders.bat
   ├─ img
   │  └─ img901.png
   ├─ music
   │  └─ 倒数.mp3
   ├─ New folder
   │  └─ New Microsoft Word.docx
   └─ 图片
      └─ 图片900.jpg

在 Test_Dir 目录下执行 7z_Bulk_Folders.bat

└─ Test_Dir
   ├─ img.7z
   ├─ music.7z
   ├─ New folder.7z
   └─ 图片.7z

压缩目录(加密)

7z_Bulk_Encrypt_Folders.bat

1
2
for /d %%D in (.\*) do "D:\7-Zip\7z.exe" a "%%D.7z" "-phraulein.com" "-mhe" "%%D\*"
pause

参数说明:

  • "D:\7-Zip\7z.exe": 7-Zip的安装目录, 请自行替换为实际安装目录
  • -phraulein.com: 压缩文件的密码是 hraulein.com
  • -mhe: 加密文件名(可省略)

测试目录树状图

└─ Test_Dir
   ├─ 7z_Bulk_Encrypt_Folders.bat
   ├─ img
   │  └─ img901.png
   ├─ music
   │  └─ 倒数.mp3
   ├─ New folder
   │  └─ New Microsoft Word.docx
   └─ 图片
      └─ 图片900.jpg

在 Test_Dir 目录下执行 7z_Bulk_Encrypt_Folders.bat

└─ Test_Dir
   └─ img.7z
   └─ music.7z
   └─ New folder.7z
   └─ 图片.7z

注意: 需要将 .bat 文件的编码设为 ANSI , 否则中文可能会出现乱码

下载文章中所用到的 .bat 文件 Download