7z获取解压缩内容的总大小?

时间:2010-10-05 16:53:28

标签: 7zip

完全提取后,如何获取zip / rar / 7z文件内容的大小?在windows和linux下。我想过使用7z l filename命令,但我不喜欢文件名干扰计算每个文件大小的代码的想法。

3 个答案:

答案 0 :(得分:3)

7zip,7z.exe的命令行版本可以打印压缩文件和未压缩文件及其大小的列表。这是使用l标志完成的。

使用此命令:

7z.exe l path\folder.zip

您还可以添加通配符,该通配符显示文件夹中所有存档的总计:

7z.exe l path\*.zip

答案 1 :(得分:1)

这不能解决您的文件名问题,但对于其他人和我自己(在cygwin中)可能已经足够了:

/cygdrive/c/Program\ Files/7-Zip/7z.exe l filename.zip | grep -e "files,.*folders" | awk '{printf $1}'

答案 2 :(得分:0)

使用Powershell:

'C:\Program Files\7-Zip\7z.exe' l '.\folder-with-zips\*.zip' | select-string -pattern "1 files" | Foreach {$size=[long]"$(($_ -split '\s+',4)[2])";$total+=$size};"$([math]::Round($total/1024/1024/1024,2))" + " GB"

或者如果您想实时观看它的全部内容。

'C:\Program Files\7-Zip\7z.exe' l '.\folder-with-zips\*.zip' | select-string -pattern "1 files" | Foreach {$size=[long]"$(($_ -split '\s+',4)[2])";$total+=$size;"$([math]::Round($total/1024/1024/1024,2))" + " GB"}

如果您多次运行它,别忘了在两次运行之间重设“ total”变量,否则它将不断累加

Remove-variable total