Sé que esto fue hace unos años, pero acabo de encontrar una herramienta gratuita que puede hacer exactamente la tarea requerida. Una herramienta de línea de comandos, XXCOPY de Pixelab http://www.xxcopy.com/
En mi propio escenario, volví a comprimir por lotes cientos de imágenes JPEG usando la opción qscale de FFmpeg, y estaba buscando una manera de sobrescribir solo archivos más pequeños. Así que lo probé y funcionó conmigo. Verifiqué creando una carpeta de respaldo, luego comparé los tamaños de carpeta. El mismo número de archivos para ambas carpetas, pero el otro ahora es más pequeño.
La pregunta original y la respuesta está aquí:
sobrescribir solo archivos que son más pequeños
https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/Agooyf23kFw
Sorprendentemente, también incluyó una solución al problema del Asker. Aquí hay una parte de la respuesta del autor XXCOPY:
¿Podrías darme una pista?
Mi problema: obtuve algunos archivos en un directorio y algunos en un subdirectorio y quiero copiar los archivos en el subdirectorio. El verdadero problema es sobrescribir solo los archivos que son más pequeños.
Puede probar XXCOPY (un programa gratuito para uso personal). El comando que desea es probablemente:
xxcopy \your_source\ \destination\ /s /bzs /y
Existen otras variaciones en las operaciones de respaldo.
/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
Tiene una característica de exclusión versátil también. Puede aplicar el mismo mecanismo de selección de archivos en las operaciones de eliminación. Otra ventaja sobre Xcopy es que XXCopy se comporta de la misma manera en cualquier versión de Windows (95,98, ME, NT / 2K / XP).
Así que supongo que el Asker necesitaría el / BZX en su lugar.