Jak skopiować tylko nowe pliki ORAZ tylko te, które zostaną zmodyfikowane po określonej dacie?

25

Chciałbym skopiować pliki z jednego dysku na drugi, ale chcę tylko skopiować pliki źródłowe, które są nowsze niż plik docelowy. ALE chcę również kopiować tylko pliki źródłowe, które zostały zmienione po określonej dacie.

Wiem, że mogę użyć xcopy do zrobienia jednej z tych rzeczy, ale chciałbym zrobić obie jednocześnie.

Na przykład chcę skopiować wszystkie pliki źródłowe datowane na 1 marca 2013 r. Lub później, ale dodatkowo chcę skopiować plik tylko wtedy, gdy plik źródłowy jest nowszy niż docelowy. Idealnie więc chciałbym zrobić coś takiego:

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

w połączeniu z czymś takim:

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

Czy można to zrobić za pomocą xcopy lub Robocopy?

PaulStock
źródło

Odpowiedzi:

23

Prawdopodobnie dostaniesz to, czego chcesz:

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

Dodaj /Ldo tego polecenie, aby zobaczyć, co zrobi bez zrobienia tego najpierw, aby się upewnić.

Sprawdź tutaj, aby uzyskać więcej informacji na temat opcji Robocopy.

Rabbid10
źródło
2

Wystarczy użyć obu opcji w tym samym poleceniu:

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

dostaniesz to, czego chcesz.

Malcolm
źródło
Jak byś to zrobił, gdyby plik miał co najmniej 1 godzinę? Innymi słowy, wiek względny od teraz, a nie wiek absolutny?
toddmo
@toddmo Wygląda na to, że zarówno xcopy, jak i Robocopy mogą filtrować tylko według daty, a nie czasu. Będziesz musiał użyć innego narzędzia lub czegoś w rodzaju pętli FOR z poleceniem DIR / O: D.
Malcolm,
RoboCopy może używać minage i maxage , ale jest to tylko na poziomie dnia, a nie godziny. Możesz także przeczytać tutaj o innych narzędziach i skryptach wsadowych, które kopiują pliki w wieku 1 godziny .
niedz.