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

корень

  • папка 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-файл с именем папки, а затем переходить к следующей папке, пока она не сожмет все.

1 ответ1

0

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .