Я знаю, что это было довольно давно, но я только нашел бесплатный инструмент, который может точно выполнить требуемую задачу. Инструмент командной строки, XXCOPY от Pixelab http://www.xxcopy.com/
В моем собственном сценарии я повторно сжал сотни изображений JPEG с помощью опции qscale в FFmpeg, и я искал способ перезаписать только меньшие файлы. Я попробовал это, и это сработало со мной. Я проверил, создав резервную копию, а затем сравнил размеры папок. Одинаковое количество файлов для обеих папок, но другой теперь меньше.
Оригинальный вопрос и ответ здесь:
перезаписывать только файлы меньшего размера
https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/Agooyf23kFw
Удивительно, но это также включало решение проблемы Аскера. Вот часть ответа автора XXCOPY:
Не могли бы вы дать мне подсказку?
Моя проблема: я получил несколько файлов в каталоге, некоторые в подкаталоге и хочу скопировать файлы в подкаталог. Реальная проблема заключается в том, что следует перезаписывать только файлы меньшего размера.
Вы можете попробовать XXCOPY (бесплатное программное обеспечение для личного использования). Вероятно, вам нужна команда:
xxcopy \your_source\ \destination\ /s /bzs /y
Существуют и другие варианты операций резервного копирования.
/BI // backup incremental (skip files of same size and time)
/BN // backup newer files only
/BO // backup older files only
/BX // backup files with a different timestamp
/BZS // backup smaller files only
/BZL // backup larger files only
/BZX // backup files with different size
/BZE // backup files with the same size
/BS // backup files with same size and timestamp
Он также имеет универсальную функцию исключения. Вы можете применить тот же механизм выбора файлов в операциях удаления. Другое преимущество перед Xcopy заключается в том, что XXCopy ведет себя одинаково в любых версиях Windows (95,98, ME, NT / 2K / XP).
Поэтому я полагаю, что Аскеру понадобится / BZX .