W folderze images\
mam następujące foldery:
Usa\
Italy\
Japan\
itp..
Chcę skrypt, który tworzy .zip
dla każdego z tych folderów, więc mam usa.zip
, italy.zip
, japan.zip
.
Jak mogę to zrobić?
Zakładam, że jest to Windows, ponieważ używasz odwrotnych ukośników.
Pobierz 7za.exe (wersja 7-zip z linii poleceń ) i umieść go w swoim %PATH%
.
Następnie uruchom to w swoim Images\
katalogu:
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
Lub w skrypcie wsadowym:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
Zakładając, że jesteś w systemie Linux, możesz użyć skryptu Bash w następujący sposób:
Ten skrypt pobierze pierwszy argument jako folder, w tym przypadku obrazy, i przejdzie dokładnie jeden poziom w głąb, aby uzyskać wszystkie foldery (Usa, Włochy i Japonia) i spakować je w tym samym miejscu.
Nie usunie starych plików zip ani folderów źródłowych. Zip jest wystarczająco inteligentny, aby wykryć istniejące pliki zip i zaktualizować je po ponownym uruchomieniu. Jeśli jednak usuniesz plik z folderów źródłowych, nie zostanie on usunięty z plików zip. Możesz obejść to zachowanie, usuwając wcześniej istniejące pliki.
źródło
Możesz do tego użyć Winrar .
Wybierz wszystkie foldery, kliknij prawym przyciskiem myszy i wybierz
Add to archive
. Teraz wybierz opcjęPut each file to separate archive
pod zakładkąFiles
:Kliknij OK i gotowe. Jeśli chcesz pliki .zip zamiast .rar, po prostu wybierz
ZIP
naGeneral
karcie poniżejArchive format
.źródło
Ta odpowiedź przez mvg pracował dla mnie na Ubuntu:
źródło