Wiem, że było to już kilka lat temu, ale właśnie znalazłem darmowe narzędzie, które może dokładnie wykonać wymagane zadanie. Narzędzie wiersza polecenia, XXCOPY firmy Pixelab http://www.xxcopy.com/
W moim własnym scenariuszu ponownie skompresowałem setki obrazów JPEG za pomocą opcji qscale FFmpeg i szukałem sposobu na zastąpienie tylko mniejszych plików. Więc spróbowałem i zadziałało ze mną. Sprawdziłem, tworząc folder kopii zapasowej, a następnie porównałem rozmiary folderów. Ta sama liczba plików dla obu folderów, ale drugi jest teraz mniejszy.
Oryginalne pytanie i odpowiedź są tutaj:
zastępuj tylko pliki, które są mniejsze
https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/Agooyf23kFw
Co zaskakujące, zawierało również rozwiązanie problemu Pytającego. Oto część odpowiedzi autora XXCOPY:
Czy możesz mi podpowiedzieć?
Mój problem: mam niektóre pliki w katalogu, a niektóre w podkatalogu i chcę je skopiować do podkatalogu. Prawdziwym problemem jest zastąpienie tylko tych plików, które są mniejsze.
Możesz wypróbować XXCOPY (darmowy program do użytku osobistego). Polecenie, które chcesz, to prawdopodobnie:
xxcopy \your_source\ \destination\ /s /bzs /y
Istnieją inne warianty operacji tworzenia kopii zapasowych
/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
Posiada również wszechstronną funkcję wykluczania. Możesz zastosować ten sam mechanizm wyboru plików podczas operacji usuwania. Kolejną zaletą w stosunku do Xcopy jest to, że XXCopy zachowuje się tak samo we wszystkich wersjach systemu Windows (95,98, ME, NT / 2K / XP).
Sądzę więc, że Pytający potrzebowałby zamiast tego / BZX .