Gostaria de copiar um diretório local recursivamente para outro diretório local no Windows 10, com os seguintes requisitos:
- A operação de cópia não deve fazer perguntas enquanto estiver em execução. (Isso é importante, porque espero que ele seja executado por 20 horas e não estou disponível para clicar em OK durante isso.) Se ocorrer um erro, ele deve ser relatado e a cópia deve continuar com o próximo arquivo.
- Se o arquivo de destino já existir, a cópia deverá sobrescrevê-lo se o tamanho for diferente. (Caso contrário, o arquivo deve ser ignorado.)
- A cópia deve copiar os horários da última modificação para arquivos e diretórios.
- Não importa se a cópia copia o proprietário, permissões ou atributos estendidos.
- A cópia deve funcionar para nomes de caminho com mais de 255 caracteres.
- A cópia deve ser executada como Administrador, para que tenha acesso de leitura e gravação a todos os arquivos e diretórios.
Tentei copiar no Total Commander, mas tende a interromper a cópia com várias perguntas. Não consegui iniciar uma cópia de forma a responder a todas as perguntas possíveis na hora de início. (Consegui especificar nas configurações para copiar os horários da última modificação dos diretórios. Por padrão, estava desabilitado.)
Dsynchronize pode fazer tudo isso.
Inicie cmd.exe como administrador. Dentro dessa janela preta do console, execute:
Ele atende a todos os requisitos da pergunta, com uma modificação: pula a cópia de um arquivo se o destino tiver um arquivo com o mesmo caminho, tamanho e hora da última modificação. (A pergunta requer apenas uma verificação de tamanho, ignorando a hora da última modificação.)
Também segue links simbólicos, então cai em um loop infinito, nunca terminando:
C:\Users\All Users\Application Data\Application Data\Application Data\...