7-zip压缩排除空文件夹

7zip 7zip 21

在 7-Zip 中,默认情况下压缩时会保留空文件夹,如果你想在压缩时自动排除所有空文件夹,7-Zip 本身没有一个直接的图形界面开关(如 -sfx-mx)来实现“排除空文件夹”的功能。

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

你可以通过以下几种方法实现这个目的:

使用命令行(推荐,最精确)

这是最直接有效的方法,7-Zip 的命令行工具 7z.exe 可以通过通配符和组合命令来排除空文件夹。

核心思路: 通过 find 命令(在 Windows PowerShell 或 CMD 中)先找出所有非空文件夹,然后将这些路径列表传递给 7-Zip,从而跳过空文件夹。

在 Windows 命令提示符 (CMD) 中操作:

REM 1. 删除当前目录下所有空文件夹(可选,但先删除后打包更干净)
for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r') do rd "%%i" 2>nul
REM 2. 然后对当前目录进行正常压缩(此时已没有空文件夹)
7z a -r output.zip *

在 PowerShell 中操作(更灵活,直接排除而不删除):

# 获取所有非空文件夹的路径
$Folders = Get-ChildItem -Path "C:\YourSourceFolder" -Recurse -Directory | Where-Object { $_.GetFileSystemInfos().Count -gt 0 }
# 获取所有文件的路径
$Files = Get-ChildItem -Path "C:\YourSourceFolder" -Recurse -File
# 将文件和文件夹路径合并,传递给 7z
# 注意:需要将路径转换为绝对路径,7z 才能正确处理
$Items = $Files.FullName + $Folders.FullName
# 压缩这些路径
7z a -r output.zip $Items
# 解释:由于我们只传入了非空文件夹和所有文件,空文件夹自然被排除。

手动删除空文件夹后再压缩(操作简单)

如果你只是偶尔需要这样做,这是最简单直接的方法:

  1. 在文件资源管理器中打开包含这些空文件夹的目录。
  2. 使用搜索功能:在搜索框输入 kind:folder emptysize(或者更通用的方法是搜索 ,然后按“大小”排序,大小为 0 的文件夹就是空文件夹)。
  3. 手动删除所有大小为 0 的文件夹。
  4. 然后正常使用 7-Zip 压缩整个文件夹。

使用批处理脚本(自动化)

如果你经常需要做这件事,可以创建一个 .bat 文件:

@echo off
setlocal enabledelayedexpansion
REM 设定要压缩的源文件夹和目标压缩包
set SOURCE=C:\MyData
set DEST=C:\MyArchive.zip
REM 1. 删除源文件夹下的所有空文件夹(谨慎操作!)
echo Removing empty folders from %SOURCE%...
for /f "delims=" %%i in ('dir "%SOURCE%" /s /b /ad ^| sort /r') do (
    rd "%%i" 2>nul
)
REM 2. 使用 7-Zip 压缩
echo Compressing %SOURCE% to %DEST%...
"C:\Program Files\7-Zip\7z.exe" a -r "%DEST%" "%SOURCE%\*"
echo Done.
pause

使用第三方工具辅助

有一些文件管理或压缩工具(如 Total CommanderWinRAR 等)提供了“排除空文件夹”的选项,如果你不想用命令行,可以考虑暂时使用这些工具完成压缩,或者使用 7-Zip 的图形界面配合一些技巧:

  • 在 7-Zip 图形界面中,选择“添加到压缩包” -> “参数” -> 在“命令行参数”框中输入 -x!*\(这个通配符有时可以排除所有文件夹,但通常也会误伤,可靠性不高)。

总结建议

  • 一次性的任务:使用方法二(手动删除再压缩)。
  • 经常需要执行的任务:使用方法一中的 PowerShell 脚本,它不删除原始内容,只是打包时跳过空文件夹,非常安全。
  • 终极方案:用批处理删除空文件夹(方法三),但请务必备份源文件,因为删除操作不可逆。

注意: 在使用命令行时,请确保 7z.exe 的路径在系统环境变量中,或者使用完整的路径(如 "C:\Program Files\7-Zip\7z.exe")。

标签: 排除空文件夹

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