5 Stimmen

7z gesamte Größe des unkomprimierten Inhalts erhalten?

Wie kann ich die Größe des Inhalts einer Zip-/RAR-/7z-Datei nach vollständiger Extraktion erhalten? Unter Windows und Linux. Ich habe daran gedacht, den Befehl 7z l Dateiname zu verwenden, aber ich mag nicht die Idee, dass der Dateiname den Code beim Zählen der Größe jeder Datei stört.

6voto

bryc Punkte 9138

Die Befehlszeilenversion von 7zip, 7z.exe, kann eine Liste von Dateien und ihren Größen, sowohl komprimiert als auch unkomprimiert, ausgeben. Dies wird mit dem l Flag durchgeführt.

Verwenden Sie diesen Befehl:

7z.exe l Pfad\Ordner.zip

Sie können auch Wildcards verwenden, um den Gesamtwert für alle Archive in einem Ordner zu erhalten:

7z.exe l Pfad\*.zip

1voto

remikz Punkte 418

Dies löst Ihr Dateinamenproblem nicht, könnte aber für andere und mich (in Cygwin) ausreichen:

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

0voto

samson7point1 Punkte 1

Mit Powershell:

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

Oder wenn Sie es Echtzeit machen möchten.

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

Wenn Sie es mehrmals ausführen, vergessen Sie nicht, Ihre "total" Variable zwischen den Durchläufen zurückzusetzen, ansonsten wird es nur aufaddieren

Remove-variable total

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X