подпаковать отдельные папки

0

Может ли кто-нибудь помочь мне сделать пакетный файл для моей проблемы. У меня есть несколько папок, которые я хочу сжать индивидуально.

корень

  • папка 1

    файл 1
    файл 2

  • папка 2

    файл 1
    файл 2

мне нужно сначала зайти в папку 1, а затем сжать все ее содержимое (файлы и папки, даже вложенные в нее подкаталоги), а затем назвать файл zip в честь папки. после этого перейдите в папку 2 и сделайте то же самое.

был простой скрипт:

для / d %% X в (*) сделать "c: \ Program Files \ 7-Zip \ 7z.exe" a "%% X" "%% X \"

но результат не то, что я намерен получить. Приведенный выше скрипт будет сжимать все папки внутри по отдельности, но архив будет иметь двойную папку при извлечении. приведенный выше код сжимает папку 1. но когда я извлекаю папку 1, она будет выглядеть так:

корень

папка 1

папка 1

файл 1
файл 2

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

Дени Макарейг
источник
Мы не должны делать это для вас. Вы должны попытаться сделать это самостоятельно и попросить нас помочь исправить все, что вам удалось сделать. Мы здесь, чтобы помочь , а не делать вашу работу за вас.
Мокубай

Ответы:

0

Это зависит от команды, которую вы используете для извлечения.

Если вы выберете «извлечь здесь», вы получите именно то, что вы хотите.

Однако, если вы действительно не хотите имен папок в вашем архиве, вы можете сделать следующее:

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X" ".\%%X\*"

Обратите внимание .\%%X\*. Это исключит само имя каталога.

Rik
источник