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