4

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

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

Это также должно быть быстрым, так как я буду синхронизировать большие ZIP-файлы. Таким образом, стирание плюс чистая распаковка не вариант.

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

2 ответа2

0

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

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

0

Я сам искал что-то такое, что могло бы иметь такую возможность. Утилита 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" .

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