Como copiar apenas novos arquivos E somente aqueles que são modificados após uma determinada data?

25

Gostaria de copiar arquivos de uma unidade para outra, mas quero copiar apenas os arquivos de origem mais recentes que o arquivo de destino. MAS , também quero copiar apenas os arquivos de origem que foram alterados após uma certa data.

Sei que posso usar o xcopy para fazer uma dessas coisas, mas gostaria de fazer as duas coisas ao mesmo tempo.

Por exemplo, quero copiar todos os arquivos de origem datados de 1/3/2013 ou mais, mas além disso, só quero que o arquivo seja copiado se o arquivo de origem for mais novo que o destino. Então, idealmente, eu gostaria de fazer algo assim:

xcopy c:\*.* e:\*.* /D:03-01-2013

combinado com algo como isto:

xcopy c:\*.* e:\*.* /D

Isso pode ser feito com xcopy ou Robocopy?

PaulStock
fonte

Respostas:

23

Provavelmente, você terá o que deseja:

Robocopy c:\ e:\ *.* /MAXAGE:20130301 /XO /E

Adicione o /Lcomando a isso para ver o que ele fará sem realmente fazer primeiro, apenas para garantir.

Verifique aqui para obter mais informações sobre as opções do Robocopy.

Rabbid10
fonte
2

Basta usar as duas opções no mesmo comando:

xcopy c:\*.* e:\*.* /D /D:03-01-2013

recebe o que você quer.

Malcolm
fonte
Como você faria isso se quisesse que o arquivo tivesse pelo menos 1 hora? Em outras palavras, uma idade relativa a partir de agora, não uma idade absoluta?
Toddmo 2/07
@toddmo Parece que o xcopy e o Robocopy só podem filtrar por data, não por hora. Você precisaria usar algum outro utilitário ou algo como um loop FOR com o comando DIR / O: D.
Malcolm
O RoboCopy pode usar minage e maxage , mas é apenas no nível do dia, não na hora. Você também pode ler aqui outras ferramentas e scripts em lote que copiarão arquivos com 1 hora de duração .
Sun