Як скопіювати лише нові файли І тільки ті, які були змінені після певної дати?


25

Я хотів би скопіювати файли з одного диска на інший, але я хочу лише скопіювати вихідні файли, новіші за цільовий. Але я також хочу копіювати лише вихідні файли, які були змінені після певної дати.

Я знаю, що можу використовувати xcopy, щоб зробити будь-яку з цих речей, але я хотів би зробити те й інше одночасно.

Так, наприклад, я хочу скопіювати всі вихідні файли, датовані 1 або 3 квітня 2013 року, але крім того, я хочу, щоб файл був скопійований лише у випадку, якщо вихідний файл новий за призначенням. Тож в ідеалі я хотів би зробити щось подібне:

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

в поєднанні з чимось подібним:

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

Це можна зробити за допомогою xcopy або Robocopy?

Відповіді:


23

Це, ймовірно, отримає те, що ви хочете:

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

Додайте /Lдо цього команду, щоб побачити, що вона буде робити, без того, щоб насправді зробити це спочатку просто для того, щоб переконатися.

Ознайомтесь тут для отримання додаткової інформації про параметри Robocopy.


2

Просто використовуйте обидва варіанти в одній команді:

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

отримує ти те, що ти хочеш.


Як би ви це зробили, якби хотіли, щоб файл був принаймні 1 годиною? Іншими словами, відносний вік відтепер, а не абсолютний вік?
toddmo

@toddmo Схоже, що і xcopy, і Robocopy можуть фільтрувати лише за датою, а не за часом. Вам доведеться використовувати якусь іншу утиліту або щось на зразок циклу FOR з командою DIR / O: D.
Малькольм

RoboCopy може використовувати монету та мангаж , але це лише на рівні дня, а не години. Ви також можете прочитати тут деякі інші інструменти та пакетні сценарії, які копіюватимуть файли за 1 годину .
Нд

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.