Відповіді:
Я припускаю, що це Windows, оскільки ви використовуєте зворотні риси.
Отримайте 7za.exe (версія командного рядка 7-zip ) і помістіть її у свою %PATH%
.
Потім запустіть це у вашому Images\
каталозі:
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
Або в пакетному сценарії:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
Якщо припустити, що ви працюєте в Linux, ви можете використовувати такий сценарій Bash:
#!/bin/bash
IFS=$'\n'
for f in $(find "$1" -mindepth 1 -maxdepth 1 -type d ); do
zip -r "$f" "$f"
done
Цей скрипт буде приймати перший аргумент як папку, в цьому випадку зображення, і повторювати рівно на один рівень, щоб отримати всі ваші папки (США, Італія та Японія) та зафіксувати їх там же.
Він не буде видаляти старі поштові файли або папки-джерела. Zip досить розумний, щоб виявити існуючі поштові файли та оновити їх при повторному запуску. Однак якщо ви видалите файл у папках-джерелах, він не буде видалений у zip-файлах. Ви можете обійти цю поведінку, попередньо видаливши існуючі файли.
Ви можете використовувати для цього Winrar .
Виберіть усі ваші папки, клацніть правою кнопкою миші та виберіть Add to archive
. Тепер виберіть параметр Put each file to separate archive
на вкладці Files
:
Натисніть кнопку ОК, і ви закінчите. Якщо ви хочете .zip файли замість .rar, просто виберіть ZIP
на General
вкладці внизу Archive format
.
Цей відповідь на MVG працював для мене на Ubuntu:
Ви можете використовувати цю петлю в
bash
:for i in */; do zip -r "${i%/}.zip" "$i"; done
i
- це ім'я змінної циклу.*/
означає кожен підкаталог поточного каталогу, і він буде включати в себе імена косої риски. Переконайтеся, що виcd
в потрібному місці, перш ніж це виконати."$i"
просто називає цей каталог, включаючи кінцеву косу рису. Лапки гарантують, що пробіл у імені каталогу не спричинить проблем.${i%/}
це як,$i
але з вилученою косою косою рисою, так що ви можете використовувати це для побудови імені zip-файлу.Якщо ви хочете побачити, як це працює, включіть
echo
команду a передzip
і ви побачите команди, надруковані замість виконаних.