Solución rápida: Use xcopy con el flag /k (mantener atributos). Mejor: use robocopy en su lugar, que preserva las marcas de tiempo de forma predeterminada. Ejemplo: robocopy C:\Source D:\Backup /e /copy:DAT /dcopy:T. Esto copia todos los archivos, incluidos los subdirectorios, preserva Datos, Atributos, Marcas de tiempo para archivos y copia las marcas de tiempo de los directorios. Recomendación moderna: robocopy en lugar de xcopy.
El comando estándar copy y arrastrar y soltar en el Explorador de archivos restablecen las fechas de los archivos a “ahora”. Esto rompe la clasificación de copias de seguridad, las comprobaciones de versiones y las herramientas de sincronización. xcopy y robocopy pueden preservar las marcas de tiempo originales. robocopy es más potente y es la recomendación de Microsoft.
Afecta a: Windows 11 (y Windows 10).
Tiempo de solución: ~5 minutos (más el tiempo de copia).
Qué causa esta necesidad
Muchos flujos de trabajo dependen de las fechas de los archivos:
- Verificación de copias de seguridad: ordenar por fecha para encontrar cambios recientes.
- Control de versiones: las marcas de tiempo confirman cuál es el más reciente.
- Herramientas de sincronización (rsync, Resilio): usan marcas de tiempo para detectar cambios.
- Forense / cumplimiento: las marcas de tiempo son evidencia.
- Organización de fotos / medios: fechas de captura.
El copy predeterminado establece Creado = ahora, lo que rompe estos flujos de trabajo.
Método 1: xcopy con el flag /k
La ruta heredada.
- xcopy es la utilidad de copia más antigua de Windows. Para preservar las marcas de tiempo:
xcopy "C:\Source" "D:\Backup" /e /i /h /k- /e: incluir todos los subdirectorios.
- /i: tratar el destino como directorio.
- /h: copiar archivos ocultos.
- /k: preservar los atributos de archivo (incluye el estado de solo lectura).
- xcopy preserva la marca de tiempo de Modificado de forma predeterminada. La marca de tiempo de Creado se restablece.
- Para preservar más: limitado mediante xcopy. Es mejor usar robocopy (Método 2).
- Para el manejo de sobrescritura: agregue
/y(sin preguntar para sobrescribir). - Para continuar en caso de error:
/c. - Para salida detallada:
/v. - Ejemplo con todas las opciones:
xcopy "C:\Source" "D:\Backup" /e /i /h /k /y /c
Este es el enfoque con xcopy.
Método 2: robocopy para una preservación completa de las marcas de tiempo
La recomendación moderna.
- robocopy es el reemplazo de Microsoft para xcopy. Integrado en Windows.
- Espejo básico con marcas de tiempo:
robocopy "C:\Source" "D:\Backup" /e /copy:DAT /dcopy:T- /e: copiar todos los subdirectorios (incluidos los vacíos).
- /copy:DAT: copiar Datos, Atributos, Marcas de tiempo para archivos. El valor predeterminado es DAT.
- /dcopy:T: copiar también las marcas de tiempo de los directorios. El valor predeterminado no las copia.
- Esto preserva: la marca de tiempo de Modificado del archivo, los Atributos (solo lectura, oculto, etc.), la marca de tiempo de Modificado del directorio.
- Para las marcas de tiempo de Creado: no se preservan de forma predeterminada. Agregue:
/copy:DATSOpara Datos, Atributos, Marcas de tiempo, Seguridad, Propietario. Aún no Creado. Se necesita un flag específico. - Para Creado + Modificado + Accedido:
robocopy "C:\Source" "D:\Backup" /e /copy:DATSO /dcopy:DATDATSO para archivos; DAT para directorios.
- Para el modo espejo (eliminar archivos en el destino que no están en el origen): agregue
/mir. Precaución: elimina. - Para reanudar / sincronizar:
/z(modo reiniciable). - Para registro:
/log:C:\backup-log.txt.
Esta es la forma de robocopy.
Método 3: PowerShell para un control granular de las marcas de tiempo
Para requisitos específicos.
- PowerShell puede copiar con una preservación completa de las marcas de tiempo:
Get-ChildItem "C:\Source" -Recurse | ForEach-Object { $dest = $_.FullName.Replace("C:\Source", "D:\Backup") if ($_.PSIsContainer) { New-Item -ItemType Directory -Path $dest -Force | Out-Null } else { Copy-Item -Path $_.FullName -Destination $dest -Force $destFile = Get-Item $dest $destFile.CreationTime = $_.CreationTime $destFile.LastWriteTime = $_.LastWriteTime $destFile.LastAccessTime = $_.LastAccessTime } } - Esto copia cada archivo y establece explícitamente las tres marcas de tiempo.
- Más lento que xcopy/robocopy debido a la sobrecarga de Copy-Item por archivo.
- Para cantidades muy grandes de archivos: use robocopy.
- Para renombrar en masa con preservación de marcas de tiempo: extraiga la fecha del contenido del archivo (EXIF para fotos), establezca Creado/Modificado para que coincidan.
- Para verificar la copia de seguridad: después de copiar, compare los hashes:
Get-FileHash "C:\Source\file.txt" -Algorithm MD5 Get-FileHash "D:\Backup\file.txt" -Algorithm MD5Una coincidencia significa que se preservó la integridad de los datos.
Este es el enfoque granular.
Cómo verificar que la solución funcionó
- Compare el origen y el destino: haga clic derecho en el archivo en el origen → Propiedades → anote las fechas de Creado, Modificado y Accedido.
- Lo mismo para el destino. Las fechas deben coincidir (con precisión de microsegundos, según el sistema de archivos).
- Para verificación por lotes:
dir /tw /tcen cmd. /tw = ordenar por hora de escritura, /tc = ordenar por hora de creación. - Registro de robocopy: busque entradas de “Mismatch”. No debería haber ninguna.
Si nada de esto funciona
Si las marcas de tiempo no se preservan: Limitación del sistema de archivos: FAT32 tiene una granularidad de 2 segundos. exFAT tiene 10 ms. NTFS tiene 100 ns. ReFS tiene nanosegundos. Desajuste entre sistemas de archivos: las marcas de tiempo se redondean. Para OneDrive / recursos compartidos de red: el servidor puede establecer Modificado a la hora del servidor. Los archivos locales se preservan. Para problemas de permisos: no se pueden establecer marcas de tiempo en archivos donde el usuario carece de propiedad. Ejecute como Administrador o tome posesión. Para archivos en uso: los archivos en uso pueden no preservar las marcas de tiempo. Cierre las aplicaciones primero o use /B en robocopy (modo de copia de seguridad, requiere Administrador). Para copias de seguridad basadas en VSS: Volume Shadow Copy preserva las marcas de tiempo de forma inherente. Herramientas como Macrium Reflect usan VSS. Para origen Linux / macOS: las marcas de tiempo de ext4 / APFS pueden tener precisión de nanosegundos; se produce un redondeo a NTFS. Para análisis forense de fechas específicas: herramientas como ExifTool pueden leer/escribir marcas de tiempo en ubicaciones alternativas (metadatos del archivo).
En resumen: Use robocopy "C:\Source" "D:\Backup" /e /copy:DAT /dcopy:T para la preservación estándar de marcas de tiempo. Agregue /copy:DATSO /dcopy:DAT para una preservación más completa. xcopy /k para compatibilidad heredada.