Как рекурсивно сжать каждый файл в каждой папке?

2239
untore

Я пытаюсь написать пакетный скрипт, который при запуске в папку берет все файлы в этой папке и упаковывает их в одну, затем берет остальные папки, просматривает их и делает то же самое, сохраняя файлы zip в каждой папке.,

Пример:

folder1 file1.ext file2.ext folder2 file3.ext file4.ext 

должен стать

folder1 file1.ext file2.ext folder1.zip containing file1.ext and file2.ext folder2 file3.ext file4.ext folder2.zip containing file3.ext and file4.ext 
0
Я добавил пример к вашему вопросу, чтобы сделать его более понятным. Вы не указали, какие имена должны иметь ZIP-файлы. Не стесняйтесь отменить мои изменения. Jan Doggen 10 лет назад 0
@untore Какую версию Windows вы используете? Может быть, Powershell (Windows 7) тоже вариант? nixda 10 лет назад 1

2 ответа на вопрос

2
Jones

WinRAR!

  1. Select all folders
  2. Right click> Add to Archive
  3. In WinRAR options go Files tab
  4. In the bottom Archive section, select "Put each file to separate archive"
  5. Ok.

Now every folder will be created into new RAR or Zip archive.

0
uprego

If you have UNIX background you can install Cygwin and write a Bash script to descend directories recursively invoking a Cygwin zip command, or any other zip command line interface (CLI) program.

You can also install Python and that way is even simpler a script to recursive descent. Each step can make a call to a CLI zip program.

You can probably use the Powershell, but am not sure how easy can be used to recursive descending.