Я попробовал следующий код с 7zip, но как только я запускаю пакетный скрипт, он продолжает сжимать уже сжатый файл внутри папки. Есть ли способ игнорировать тип файла .zip и удалить исходный файл после его сжатия? Любая помощь приветствуется, спасибо.

Код:

FOR %%i IN ("C:\filepath....\*HAEC040.D*") DO "C:\Program Files\7-Zip\7z.exe" a  -mx "%%~i.zip" "%%i" 

Скриншот:

1 ответ1

0

Это все в справочном файле 7Zip, в версии командной строки или в справке командной строки (7z -h):

-ax[r[-|0]]{@listfile|!wildcard} : eXclude archives
-sdel : delete files after compression
-x[r[-|0]]{@listfile|!wildcard} : eXclude filenames

-mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra)

Таким образом, ваша команда zip будет выглядеть примерно так (кстати, вы не указали номер уровня сжатия на флаге mx :

7z.exe a "%%~i.zip" "%%i" -mx1 -sdel -xr!*.zip 

Тестирование оставлено как упражнение для пользователя. Будьте осторожны с этим флагом удаления! Установите конкретную папку для тестирования с фиктивными данными, прежде чем использовать реальные данные, которые вас интересуют.

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