La herramienta de línea de comandos Robocopy (viene con la mayoría de las versiones de Windows)
En mi máquina de Windows 10 se encuentra en C:\Windows\System32
De Wikipedia , se puede utilizar con el siguiente conjunto de opciones para preservar las marcas de tiempo de archivos y directorios, así como otros atributos:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
preservar las fechas de los directorios originales (requiere la versión XP026 o posterior)
/E
: Copiar directorios de forma recursiva, incluidos los directorios vacíos
/R:0
: no reintentar archivos bloqueados (el número de reintentos en copias fallidas valor por defecto es 1 millón),
/COPYALL
: Copiar toda la información de los archivos,
(equivalente a /COPY:DATSOU
, donde
Si sólo quiere preservar la fecha y las marcas de tiempo de los directorios, pero no quiere que se copien los subdirectorios vacíos y no quiere que se preserven otros atributos entonces puede usar:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
donde /S
copia los subdirectorios no vacíos
Para ver la sintaxis completa, escriba robocopy /?
en una línea de comandos, o eche un vistazo a estas entradas del blog: https://ss64.com/nt/robocopy.html y https://techjourney.net/robocopy-syntax-command-line-switches-and-examples/
Un ejemplo de un comando que ejecuté recientemente:
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Fíjese en que para excluir 2 subdirectorios hay que usar dos veces la bandera /XD
. Además, la segunda exclusión de directorio utiliza comillas porque hay espacios en el nombre del directorio.
Por último, puede añadir la bandera /L
para probar el comando antes de hacerlo de verdad. De esta manera puede verificar que no copiará (o eliminará) ningún directorio/archivo que no desee, y que no hay errores en su comando.
Edit: gotcha when copying from a Root Directory (aka drive) to a Folder (non-root directory)
Después de ejecutar el comando de ejemplo de arriba, ¡el directorio no era visible! (¡Aunque show hidden files
y show system files
estaban marcados en Windows 10!) El siguiente comando según https://serverfault.com/a/455029/399723 arregló esto:
attrib -h -s C:\D_backup
Alternativamente, añadiendo el /A-:SH
“desestablece el Atributo Oculto de los archivos del Sistema”, así puede evitar que el directorio se oculte en primer lugar, según https://serverfault.com/a/565804/399723 . Véase también https://ss64.com/nt/robocopy.html .
Esta descussion arroja más luz sobre esta opción como solución.
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Otro software:
Como alternativa, puede descargar una versión GUI de robocopy si no quiere usar la línea de comandos.
Otra utilidad de windows es XCopy , aunque está incluida en windows 10, está siendo obsoleta. Ver el enlace para los gotchas.
La página de Wikipedia para RoboCopy (enlazada en la parte superior de este post) enumera otros programas que se pueden utilizar.