7zip bat / команда сжимает несколько папок в несколько соответствующих архивов без папки в архиве

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

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

Он автоматически размещает полное содержимое всех папок отдельными архивными файлами. Мой вопрос: если вы дважды щелкните любой из архивов, он сначала перейдет в папку с тем же именем, что и архив. Есть ли способ сделать так, чтобы он не помещался в папку, а просто содержал содержимое?

Прямо сейчас я получаю

D:\User\1501.7z\1501\ contents

я просто хочу

D:\User\1501.7z\ contents

Во-вторых, если это возможно, можно ли настроить его так, чтобы, если в одной из папок было несколько папок, все содержимое каждой папки помещалось только в каталог on вместо того, чтобы иметь несколько папок в архиве.

Спасибо, Тони


person user2970560    schedule 03.02.2016    source источник


Ответы (1)


Это установит рабочий каталог в папку, которую вы хотите заархивировать, и сохраните zip-файл на один уровень выше из этого каталога.

@echo off
for /d %%X in (*) do (
    PUSHD "%%X"
    "D:\Program Files\7-Zip\7z.exe" a "..\%%X.7z" "*"
    POPD
)
person Squashman    schedule 03.02.2016
comment
Сквошман, Спасибо! при работе с тысячами архивов лишний двойной щелчок стал настоящей головной болью в тылу. Очень признателен. - person user2970560; 03.02.2016