7-zip批量压缩排除后缀文件

7zip 7zip 11

使用7-Zip进行批量压缩并排除特定后缀的文件,可以通过命令行或批处理脚本实现,以下是两种常用方法:

7-zip批量压缩排除后缀文件-第1张图片-7-Zip 中文版 - 电脑压缩解压神器 - 最新版

使用-x!参数排除特定后缀

@echo off
setlocal enabledelayedexpansion
REM 设置压缩包密码(可选)
set "PASSWORD="
REM 设置压缩级别(0=存储,5=标准,9=极限)
set "LEVEL=5"
REM 设置排除的后缀名(用逗号分隔)
set "EXCLUDE=*.tmp,*.log,*.bak"
for /r %%i in (*) do (
    if not "%%~xi"=="" (
        set "EXT=%%~xi"
        set "EXCLUDE_FLAG="
        REM 检查当前文件后缀是否在排除列表中
        for %%e in (%EXCLUDE%) do (
            if /i "%%~xi"=="%%e" set "EXCLUDE_FLAG=1"
        )
        if not defined EXCLUDE_FLAG (
            REM 构建压缩命令
            set "COMMAND=7z a -tzip "%%~dpni.zip" "%%i" -mx!LEVEL!"
            if defined PASSWORD set "COMMAND=!COMMAND! -p!PASSWORD! -mem=AES256"
            !COMMAND!
        )
    )
)

使用-i!参数包含特定文件(反向排除)

@echo off
setlocal enabledelayedexpansion
REM 设置要包含的文件类型(保留的文件后缀)
set "INCLUDE=*.txt,*.doc,*.xls"
for /r %%i in (%INCLUDE%) do (
    set "COMMAND=7z a -tzip "%%~dpni.zip" "%%i" -mx5"
    !COMMAND!
)

一次性压缩整个文件夹并排除文件

@echo off
REM 压缩当前目录下所有文件,排除指定后缀
7z a -tzip output.zip * -x!*.tmp -x!*.log -x!*.bak -mx5

高级用法:多文件夹批量压缩

@echo off
setlocal enabledelayedexpansion
REM 排除的后缀列表(用空格分隔)
set "EXCLUDE=.tmp .log .bak .zip .rar"
for /d %%d in (*) do (
    echo 正在压缩文件夹: %%d
    set "EXCLUDE_PARAMS="
    for %%e in (%EXCLUDE%) do (
        set "EXCLUDE_PARAMS=!EXCLUDE_PARAMS! -x!*.%%e"
    )
    7z a -tzip "%%d.zip" "%%d\*" !EXCLUDE_PARAMS! -mx5 -r
)

使用说明:

  1. 安装7-Zip并确保7z.exe在系统PATH中
  2. 将上述代码保存为.bat文件(如batch_compress.bat
  3. 在要压缩的文件夹中运行该批处理文件
  4. 根据需要修改EXCLUDE变量中的排除列表

常用参数说明:

  • -tzip:指定压缩格式为ZIP
  • -mx5:设置压缩级别(0-9)
  • -pPASSWORD:设置密码
  • -r:递归处理子目录
  • -x!*.ext:排除指定扩展名的文件
  • -i!*.ext:只包含指定扩展名的文件

如果不需要密码保护,移除-p参数即可。

标签: zip 批量压缩

抱歉,评论功能暂时关闭!