Robocopy replace same date file move
IF Source File data (Newer or Same) move/overwrite data Else skip file
Para concluir, use Robocopy com o script em lote de exemplo fornecido abaixo de sytax e todos .
I want to just excluded older not same date. I want to make sure to move (and overwrite so source get clean) the data with new or same data as the source.
The issue is I also want to move the same date data not just the newer.
Como, por padrão, o Robocopy só copiará um arquivo se a origem e o destino tiverem carimbos de data / hora diferentes ou tamanhos de arquivo diferentes, você precisará usar a opção /IS
para também copiar os mesmos dados também e, se use a opção /MOVE
, ela também removerá esses arquivos e pastas da fonte.
Opções de Robocopy usadas
(eu usei esses switches em particular, mas você deve testar para confirmar todos os trabalhos como esperado apenas no caso.)
/S : Copy Subfolders, but not empty ones.
/NP : No Progress - don’t display % copied. (for cleaner log file)
/R:n : Number of Retries on failed copies - default is 1 million.
/MOVE : Move files and dirs (delete from source after copying).
/IS : Include Same, overwrite files even if they are already the same.
/TS : Include Source file Time Stamps in the output. (for log file)
/FP : Include Full Pathname of files in the output. (for log file)
/LOG+:file : Output status to LOG file (append to existing log).
Para as variáveis abaixo:
-
SET SRCRoot="\Server\Share\Source"
-
SET DESTRoot="\Server\Share\Destination"
Os SET SRCRoot
e SET DESTRoot
são os diretórios raiz \ pai dos quais você copiará de e para o nível mais alto, recursivamente. Você pode definir um desses para um caminho de letra de unidade (por exemplo, C:\Path
) ou pode ser mantido como caminho UNC (por exemplo, \server\share\folder
) e funcionará de qualquer maneira.
-
SET LOG=C:Path\Log.txt
O SET LOG
é o nome e o local do seu arquivo de log anexado. Ele também pode apontar para um caminho completo da unidade ou um caminho UNC. Este é o arquivo que você pode analisar para obter todos os detalhes sobre o que foi copiado, o que não foi, mensagens de erro, etc. Isso é estritamente opcional, mas sugiro usá-lo sempre e revisar conforme necessário para solução de problemas ou confirmação.
Exemplo de script em lote do Robocopy
Se você também precisar copiar a segurança em nível de arquivo dos arquivos e da pasta copiados para a origem do destino (as ACLs), informe-nos, pois você provavelmente incluirá o /SEC
ou /COPYALL
swithces.
@ECHO ON
SET SRCRoot="\Server\Share\Source"
SET DESTRoot="\Server\Share\Destination"
SET LOG=C:Path\Log.txt
:: --// Robocopy Options
:::: --// If you do not want a log file, remove the "/LOG+:%LOG%" below
SET OPT=/MOVE /IS /S /NP /R:5 /LOG+:%Log% /TS /FP
SET CMD=Robocopy "%SRCRoot%" "%DESTRoot%" *.* %OPT%
%CMD%
EXIT /B
Switches Robocoy Opcionais
(Se você precisar de algum destes, me avise e terei prazer em atualizar minha resposta se precisar de um exemplo incluindo qualquer)
/E : Copy Subfolders, including Empty Subfolders.
/SEC : Copy files with SECurity (equivalent to /COPY:DATS).
/DCOPY:T : Copy Directory Timestamps.
/COPYALL : Copy ALL file info (equivalent to /COPY:DATSOU)
Agendamento para automação autônoma
Consulte a minha resposta Tarefas agendadas para as opções, pegadinhas, etc. que você deseja selecionar ao agendar um script em lote com o Agendador de Tarefas para executar conforme o esperado. Capturas de tela e todas são fornecidas e sinta-se à vontade para revalorizar essa resposta se achar que é útil e digna como tal - sem pressionar apenas um recurso adicional que você pode achar útil.