Используя 7-Zip из командной строки - имя zip-файла с именем каталога

1

Я знаю, что это должно быть так просто, но я не знаю, как это сделать. Любая помощь будет оценена.

Я хочу назвать почтовые файлы с именем каталога.

Скажем, у меня есть каталог "Zip1" с файлами "Doc1.txt" и "Doc2.txt"

Я все понимаю в архивировании папки, за исключением именования ее. Я не могу найти примеров того, как назвать файл через командную строку, используя информацию об имени каталога.

Как я могу назвать этот zip-файл как "Zip1.7z" без фактического ввода имени каталога, но с помощью командной строки извлекать эту информацию из каталога, в котором находятся файлы?

Кто-нибудь может помочь?

Лори Миллер
источник

Ответы:

1

Я предполагаю, что вы находитесь в каталоге, куда должны быть заархивированы все подкаталоги, и что двоичные файлы 7-Zip находятся в вашем PATH.

Затем вы можете использовать следующее в Windows (каталог есть %i):

for /d %i in (*) do 7z ... %i.7z ...

В Linux (каталог есть $i):

for i in $(find -mindepth 1 -maxdepth 1 -type d) ; do 7zr ... $i.7z ... ; done

Короче, но менее надежно:

for i in */ ; do 7zr ... ${i%/}.7z ... ; done

Пример для архивирования всех .txtфайлов во всех каталогах, которые начинаются с backup-:

Окна:

for /d %i in (backup-*) do 7z ... %i.7z %i\*.txt

Linux:

for i in backup-*/ ; do 7zr ... ${i%/}.7z $i/*.txt ; done
speakr
источник