如何使用Powershell读取zip压缩包内顶层文件夹并统计其下属文件总数
PowerShell 统计ZIP包顶层文件夹下总文件数方法
无需解压压缩包,直接调用.NET内置的压缩类即可完成统计,操作步骤如下:
- 加载压缩包处理程序集
Add-Type -AssemblyName System.IO.Compression.FileSystem
- 读取目标ZIP包,替换示例路径为你本地
file.zip的实际路径
$zipPath = "C:\path\to\your\file.zip" $zip = [System.IO.Compression.ZipFile]::OpenRead($zipPath)
- 统计并输出结果,自动过滤根目录单独存放的文件(如示例中的
log.txt)以及文件夹本身的无效条目
$zip.Entries | Where-Object { $_.Name -ne '' -and $_.FullName -match '^[^/]+/' } | Group-Object { ($_.FullName -split '/')[0] } | ForEach-Object { Write-Host "- $($_.Name) contains $($_.Count) files" } # 统计完成后释放ZIP包资源 $zip.Dispose()
输出示例
运行后会直接输出你需要的结果:
- Folder1 contains 15 files - Folder2 contains 7 files
注意事项
如果你的压缩包包含中文文件名/路径,在PowerShell 5.1版本下可能出现编码错误,建议升级到PowerShell 7+版本即可解决。
内容的提问来源于stack exchange,提问作者niccolog71
相关产品推荐
相关产品推荐

