-2

Я хочу использовать 7 zip для сжатия и архивирования папок, но я хочу исключить существующие файлы .7z если они существуют, и не дублировать их с .7z.7z . Я нашел это, но он дублирует уже заархивированные файлы

for /R "D:\Test\AAPS - 54" %%F in (*) 
do (
    C:\progra~1\7-zip\7z.exe a -mx9 "%%~dpnxF.7z" "%%F"
    if exist "%%~dpnxF.7z" del "%%F"
    )

2 ответа2

0

Чтобы избежать архивирования уже существующих файлов .7z, используйте команду dir с переключателем /ad в цикле FOR, чтобы вывести только каталоги, а затем передайте каждый из этих каталогов команде 7z.exe, которую вы хотите использовать.

Например, чтобы сжать каждый подкаталог вашей папки «AAPS - 54 - Copy» без архивирования любых существующих файлов .7z, выполните следующие действия:

for /f "tokens=*" %%A in ('dir /s /b /ad "D:\Test\AAPS - 54\AAPS - 54 - Copy"') do (
     @if not exist "%%A.7z" "%PROGRAMFILES%\7-zip\7z.exe" a -t7z "%%A.7z" "%%A")

Вы можете заменить «-tz7» любыми аргументами, которые вы хотите передать для сжатия и архивирования ваших папок.

0

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

для /R "D:\Test\AAPS - 54\AAPS - 54 - Скопировать" %% F в () do (C:\progra ~ 1\7-zip\7z.exe a -x!.7z -mx9 "" %% ~ dpnxF.7z "" %% F ", если существует" %% ~ dpnF.7z "del" %% F.7z ", если существует" %% ~ dpnxF.7z "del" %% F ")

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