Como o Robocopy determina se um arquivo é "alterado"?

17

Estou procurando aqui informações detalhadas sobre como o algoritmo do Robocopy determina se um arquivo foi alterado ou não. Se eu usar, por exemplo, o parâmetro / mir, o Robocopy deverá determinar quais arquivos foram alterados e quais não. Ele usa o carimbo de data / hora modificado ou os tamanhos de arquivo, mistura uma combinação de todos?

Curiosamente, ele não diz nada sobre isso na documentação.

user54512
fonte

Respostas:

25

Ok, depois de passar o dia pesquisando isso, lendo a documentação e testando para mim mesmo (todos com o mesmo resultado), tenho a resposta.

Uma resposta curta é: o valor padrão do Robocopy é (a menos que você especifique algo diferente por meio de parâmetros) que ele copiará qualquer arquivo em que o carimbo de data / hora OU o tamanho do arquivo seja diferente . Lembre-se de Robocopy SEMPRE copia da Origem para o Destino. Portanto, se você tiver um arquivo maior e mais novo no destino, o Robocopy o substituirá pelo arquivo menor e mais antigo da fonte (é por isso que enfatizo a palavra "difere" - não é mais nova ou maior , apenas diferente).

Em um nível mais profundo, você pode verificar com a opção / it mesmo se os atributos de um arquivo diferirem e copiar aqueles que diferem também - mesmo se o tamanho do arquivo e o carimbo de data / hora forem iguais (OK, 100%, não sei se copiará o arquivo ou apenas os atributos ausentes, mas como os arquivos são idênticos, o resultado será o mesmo).

Encontrei a documentação extensa citada no outro tópico - é sobre a versão XP010 (acho que era o Windows XP). Mas simplesmente não há documentação mais recente para robocopy. Você pode encontrar a documentação aqui:

http://theether.net/download/Microsoft/Utilities/robocopy.pdf (Leia a seção "Usando classes de arquivos Robocopy", tudo é explicado com bastante precisão)

A documentação é sobre uma versão mais antiga do Robocopy (no Win7 você costuma ter a versão XP027) - mas você pode verificar se há alterações na versão deste site - que possui uma visão geral muito clara:

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

O ponto principal é que não existem muitas diferenças entre o XP e o Win7 - apenas os menores e as alterações foram adicionar parâmetros - não alterá-los (com exceção do parâmetro / mir). E acho que é seguro dizer que o mecanismo de comparação não terá mudado - já que isso seria algo enorme em comparação com a mudança muito pequena de adicionar mais alguns parâmetros.

Esta é provavelmente a razão pela qual não há nova documentação.

Espero que ajude se você estiver procurando as mesmas informações e lendo isso. Tentei ser preciso e fiz minha pesquisa com cuidado.

user54512
fonte
2
Ele usa os carimbos de data e hora criados, modificados ou ambos?
user643011
@ user54512 eu não entendo nada .. então ele usa timestamps ou hashes?
Shayan
1
@ Shayan: está escrito lá, se o carimbo de data / hora ou tamanho do arquivo for diferente, ele copiará da origem para o destino. Sem hashes. O resto está na documentação que coloquei no link.
user54512