Cómo preservar las marcas de tiempo de archivos durante la copia de seguridad con xcopy en Windows 11
🔍 WiseChecker

Cómo preservar las marcas de tiempo de archivos durante la copia de seguridad con xcopy en Windows 11

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.

Síntoma: Desea preservar las marcas de tiempo de Creación/Modificación de archivos durante la copia de seguridad con xcopy o robocopy en Windows 11.
Afecta a: Windows 11 (y Windows 10).
Tiempo de solución: ~5 minutos (más el tiempo de copia).

ADVERTISEMENT

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.

  1. 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).
  2. xcopy preserva la marca de tiempo de Modificado de forma predeterminada. La marca de tiempo de Creado se restablece.
  3. Para preservar más: limitado mediante xcopy. Es mejor usar robocopy (Método 2).
  4. Para el manejo de sobrescritura: agregue /y (sin preguntar para sobrescribir).
  5. Para continuar en caso de error: /c.
  6. Para salida detallada: /v.
  7. Ejemplo con todas las opciones:
    xcopy "C:\Source" "D:\Backup" /e /i /h /k /y /c

Este es el enfoque con xcopy.

ADVERTISEMENT

Método 2: robocopy para una preservación completa de las marcas de tiempo

La recomendación moderna.

  1. robocopy es el reemplazo de Microsoft para xcopy. Integrado en Windows.
  2. 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.
  3. Esto preserva: la marca de tiempo de Modificado del archivo, los Atributos (solo lectura, oculto, etc.), la marca de tiempo de Modificado del directorio.
  4. Para las marcas de tiempo de Creado: no se preservan de forma predeterminada. Agregue: /copy:DATSO para Datos, Atributos, Marcas de tiempo, Seguridad, Propietario. Aún no Creado. Se necesita un flag específico.
  5. Para Creado + Modificado + Accedido:
    robocopy "C:\Source" "D:\Backup" /e /copy:DATSO /dcopy:DAT

    DATSO para archivos; DAT para directorios.

  6. Para el modo espejo (eliminar archivos en el destino que no están en el origen): agregue /mir. Precaución: elimina.
  7. Para reanudar / sincronizar: /z (modo reiniciable).
  8. 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.

  1. 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
        }
    }
  2. Esto copia cada archivo y establece explícitamente las tres marcas de tiempo.
  3. Más lento que xcopy/robocopy debido a la sobrecarga de Copy-Item por archivo.
  4. Para cantidades muy grandes de archivos: use robocopy.
  5. 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.
  6. 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 MD5

    Una coincidencia significa que se preservó la integridad de los datos.

Este es el enfoque granular.

ADVERTISEMENT

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 /tc en 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.

ADVERTISEMENT