Programa de linha de comando para copiar arquivos exclusivos?

0

Existe um programa de linha de comando que pode copiar arquivos que existem em uma pasta, mas não existem em outra , tendo em conta que :

  1. O arquivo na pasta de destino pode ter sido renomeado e não quero duplicatas
  2. Os arquivos são adicionados à pasta de origem a qualquer momento e têm registros de data / hora aleatórios criados, modificados e acessados

Eu tentei usar o robocopy, mas há dois problemas:

  • robocopy /mir copiará os arquivos, mas se um arquivo na pasta de destino tiver sido renomeado (ponto # 1), o nome do arquivo original será copiado novamente na próxima vez que for executado.
  • robocopy /maxage:1 copia arquivos no último dia, mas como os arquivos adicionados têm registros de data e hora aleatórios (ponto # 2), muitos arquivos adicionados recentemente não serão copiados, pois são mais antigos que isso.

Existe algo mais que possa fazer o que eu quero?

    
por Richard 23.02.2017 / 15:48

1 resposta

2

Você especificou essa condição:

The file in the destination folder may have been renamed and I don't want duplicates

Essa condição literalmente elimina todos os candidatos que conheço no Windows e no Linux. Ele elimina o nome do arquivo da equação, exigindo que o aplicativo de cópia compare arquivos com base em seu tamanho e conteúdo. (Sua segunda condição também tira o carimbo de tempo da equação.)

O que você deve fazer é arregaçar as mangas e começar a escrever um script do PowerShell que cria hashes SHA-1 de todos os arquivos (na origem e no destino), compara os hashes na origem e destino e, finalmente, transferir arquivos com hashes exclusivos.

    
por 23.02.2017 / 17:09