¿Cómo determina Robocopy si un archivo se "cambia"?

17

Estoy buscando información detallada sobre cómo el algoritmo de Robocopy determina si un archivo ha cambiado o no. Si uso, por ejemplo, el parámetro / mir, Robocopy debe determinar qué archivos se cambian y cuáles no. ¿Utiliza la marca de tiempo modificada o los tamaños de archivo, combina una combinación de todos?

Curiosamente, no dice nada al respecto en la documentación.

usuario54512
fuente

Respuestas:

25

Ok, después de pasar el día investigando esto, leyendo la documentación y probando por mí mismo (todo con el mismo resultado), tengo la respuesta.

Una respuesta breve es: el valor predeterminado de Robocopy es (a menos que especifique algo diferente a través de parámetros) que copiará cualquier archivo donde la marca de tiempo o el tamaño del archivo difiera . Recuerde Robocopy SIEMPRE copias del origen al destino. Entonces, si tiene un archivo más nuevo Y más grande en el destino, Robocopy lo sobrescribirá con el archivo más antiguo y más pequeño de la fuente (es por eso que pongo énfasis en la palabra "difiere": no es más nuevo ni más grande , solo diferente).

En un nivel más profundo, puede verificar con la opción / it incluso si los atributos de un archivo difieren y copiar los que también difieren, incluso si el tamaño del archivo y la marca de tiempo son iguales (OK, para un 100%, no sé si copiará el archivo o solo los atributos faltantes, pero como los archivos son idénticos, el resultado será el mismo).

Encontré la extensa documentación que se citó en el otro hilo: se trata de la versión XP010 (supongo que era Windows XP). Pero simplemente no hay documentación más reciente para robocopy. Puede encontrar la documentación aquí:

http://theether.net/download/Microsoft/Utilities/robocopy.pdf (Lea la sección "Uso de clases de archivos de Robocopy", todo se presenta con bastante precisión allí)

La documentación trata sobre una versión anterior de Robocopy (en Win7 generalmente tiene la versión XP027), pero puede verificar los cambios de la versión en este sitio, que tiene una visión general muy clara:

http://yarcgui.wilkes.es/De/RoboCopy/index.htm

La conclusión es que no hay muchas diferencias entre incluso XP y Win7, solo las menores y los cambios fueron para agregar parámetros, no para alterarlos (con la excepción del parámetro / mir). Y creo que es seguro decir que el mecanismo de comparación no habrá cambiado, ya que esto sería algo enorme en comparación con el pequeño cambio de agregar algunos parámetros más.

Esta es probablemente la razón por la que no hay nueva documentación.

Espero que ayude si está buscando la misma información y está leyendo esto. Traté de ser preciso e hice mi investigación con cuidado.

usuario54512
fuente
2
¿Utiliza las marcas de tiempo creadas, modificadas o ambas?
user643011
@ user54512 No entiendo nada ... ¿usa marcas de tiempo o hashes?
Shayan
1
@shayan: está escrito allí, si Timestamp OR Filesize difiere , se copiará del origen al destino. No hashes. El resto está en la documentación que puse en el enlace.
user54512