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