¿Cómo copiar solo archivos nuevos Y solo aquellos que se modifican después de una fecha determinada?

25

Me gustaría copiar archivos de una unidad a otra, pero solo quiero copiar los archivos de origen que son más nuevos que el archivo de destino. PERO , también quiero copiar solo los archivos de origen que se han cambiado después de una fecha determinada.

Sé que puedo usar xcopy para hacer cualquiera de estas cosas, pero me gustaría hacer las dos cosas al mismo tiempo.

Entonces, por ejemplo, quiero copiar todos los archivos de origen con fecha del 1/03/2013 o posterior, pero además solo quiero copiar el archivo si el archivo de origen es más nuevo que el destino. Entonces, idealmente, me gustaría hacer algo como esto:

xcopy c:\*.* e:\*.* /D:03-01-2013

combinado con algo como esto:

xcopy c:\*.* e:\*.* /D

¿Se puede hacer esto con xcopy o Robocopy?

PaulStock
fuente

Respuestas:

23

Esto probablemente te dará lo que quieres:

Robocopy c:\ e:\ *.* /MAXAGE:20130301 /XO /E

Agregue el /Lcomando a esto para ver qué hará sin que realmente lo haga primero solo para asegurarse.

Consulte aquí para obtener más información sobre las opciones de Robocopy.

Rabbid10
fuente
2

Simplemente use ambas opciones en el mismo comando:

xcopy c:\*.* e:\*.* /D /D:03-01-2013

te da lo que quieres

Malcolm
fuente
¿Cómo lo harías si quisieras que el archivo tuviera al menos 1 hora? En otras palabras, ¿una edad relativa a partir de ahora, no una edad absoluta?
toddmo
@toddmo Parece que tanto xcopy como Robocopy solo pueden filtrar por fecha, no por hora. Tendría que usar alguna otra utilidad, o algo así como un bucle FOR con el comando DIR / O: D.
Malcolm
RoboCopy puede usar minage y maxage , pero solo está en el nivel del día, no en la hora. También puede leer aquí para ver otras herramientas y scripts por lotes que copiarán archivos de 1 hora de antigüedad .
Dom