командная строка unzip для синхронизации папки назначения

командная строка unzip для синхронизации папки назначения

Есть ли способ распаковать .zip-архив в папку и синхронизировать содержимое этой папки с содержимым .zip-архива?

Я знаю, что можно использовать опцию -u(pdate), которая обновит папку новыми файлами, но этого недостаточно. Мне нужно, чтобы она выполнила настоящую синхронизацию (удалила файлы, которых нет в .zip, и обновила файлы, которые являются новыми).

Он также должен быть быстрым, так как я буду синхронизировать большие .zip-файлы. Поэтому очистка плюс чистая распаковка — не вариант.

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

решение1

WinZipимеет надстройку поддержки командной строки WZUNZIP.EXEсо следующим параметром, который можно использовать в сочетании с его -eаргументом при извлечении:

-- Распаковывать только новые файлы. Эта опция обновляет существующие файлы, если архивированный файл новее, и создает новые, если их еще нет.

решение2

Я сам долго искал что-то с такой возможностью. Утилита Info-ZIP бесплатна, работает на основе командной строки и имеет переключатель -FS, который удалит из архива файлы, которых больше нет в исходной папке, а также обновит новые файлы. Синхронизация файлов IE ZIP. http://www.info-zip.org/ Примечание: Единственная проблема, с которой я столкнулся при использовании этой утилиты, заключается в том, что нет возможности явно указать исходную папку в качестве аргументов командной строки. Она использует текущий рабочий каталог в качестве источника. Поэтому в скрипте вы сначала используете команду CD, чтобы перейти в исходный каталог, а затем инициировать команду ZIP. Например:

CD /D D:\Program Settings\Favorites
zip -FS -r -9 -b %Temp% -q -ds 0 "D:\Backup\Favorites.zip" .

Связанный контент