una subcarpetas sobreescribir script por para otra hacer fecha copiar carpetas carpeta bat automatico archivos batch-file directory backup modified-date

batch file - subcarpetas - Uso de archivos por lotes para actualizar y hacer una copia de seguridad de un directorio



robocopy (1)

Necesito crear un script de proceso por lotes para un directorio. Se actualizará cada 10 minutos. Me gustaría que solo actualice los archivos que se han agregado al directorio o modificado después de la última copia de seguridad.

Traté de usar este script:

@ECHO OFF SET srcdir=D:/Source SET tgtdir=D:/Target SET /A topcnt=3 SET /A cnt=0 FOR /F "tokens=*" %%F IN (''DIR /A-D /OD /TW /B "%srcdir%"'') DO ( SET /A cnt+=1 SETLOCAL EnableDelayedExpansion IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF) ENDLOCAL COPY "%srcdir%/%%F" "%tgtdir%" )

El problema que tengo es que solo funciona en el directorio donde está el archivo por lotes, que devolverá los tres archivos más recientes, incluido el archivo por lotes. Además, la función de copia no funciona. El programa no está conectando el srcdir con la extensión de archivo, por lo tanto, el programa no puede determinar qué archivo copiar. Por favor avise.


No entiendo cómo su código se relaciona con su objetivo declarado en el primer párrafo de su pregunta. Si su objetivo es tan simple como usted indicó, entonces no necesita un archivo por lotes. Solo necesita programar el siguiente comando para ejecutar cada 10 minutos:

xcopy /d D:/Source/* d:/Target

El comando anterior solo copiará los archivos o archivos nuevos que se hayan modificado desde la última copia de seguridad.

Si sus requisitos de copia de seguridad se vuelven más complicados, entonces probablemente deba cambiar a ROBOCOPY. Tiene una gran cantidad de opciones que probablemente satisfarán tus necesidades. Todavía no se requiere lote.