Unter dem Ordner habe images\
ich folgende Ordner:
Usa\
Italy\
Japan\
etc..
Ich möchte ein Skript , das ein erstellt .zip
für jeden dieser Ordner, so habe ich usa.zip
, italy.zip
, japan.zip
.
Wie kann ich das machen?
Ich gehe davon aus, dass dies Windows ist, da Sie Backslashes verwenden.
Holen Sie sich 7za.exe (die Befehlszeilenversion von 7-zip ) und fügen Sie sie in Ihre %PATH%
.
Dann führen Sie dies in Ihrem Images\
Verzeichnis aus:
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
Oder in einem Batch-Skript:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
Sie können Winrar dafür verwenden.
Wählen Sie alle Ihre Ordner aus, klicken Sie mit der rechten Maustaste und wählen Sie
Add to archive
. Wählen Sie nun die OptionPut each file to separate archive
unter der RegisterkarteFiles
:Klicken Sie auf OK und Sie sind fertig. Wenn Sie .zip-Dateien anstelle von .rar möchten, wählen Sie einfach
ZIP
in derGeneral
Registerkarte unterArchive format
.quelle
Angenommen, Sie arbeiten unter Linux, könnten Sie ein Bash-Skript wie das folgende verwenden:
Dieses Skript nimmt das erste Argument als Ordner, in diesem Fall Bilder, und verwendet genau eine Ebene, um alle Ordner (USA, Italien und Japan) zu erhalten und an derselben Stelle zu komprimieren.
Es werden keine alten ZIP-Dateien oder Quellordner gelöscht. Zip ist intelligent genug, um vorhandene ZIP-Dateien zu erkennen und zu aktualisieren, wenn sie erneut ausgeführt werden. Wenn Sie jedoch eine Datei in den Quellordnern löschen , wird diese nicht in den ZIP-Dateien gelöscht. Sie können dieses Verhalten möglicherweise umgehen, indem Sie zuvor vorhandene Dateien löschen.
quelle
Diese Antwort von MvG funktionierte für mich unter Ubuntu:
quelle