Сравнить разные версии одного и того же каталога (по дате изменения) - PullRequest
0 голосов
/ 15 октября 2018

Это вопрос из нескольких частей.Я могу заполнить детали, как только доберусь до рабочего прототипа.

Ситуация: из-за комедии ошибок у меня есть три копии очень большого каталога, у каждой копии есть несколько новых файлов / версий файлов, которыеуникальный.Я хотел бы объединить их, сохранив новейшую версию каждого файла.

Разбивка вещей, которых я не знаю: Как рекурсивно сравнивать каталоги друг с другом (вероятно, будет делать два одновременно;1 против 2 = 1 + 2, затем 1 + 2 против 3 = 1 + 2 + 3).Важнейший для этого шаг: как использовать путь / имя файла в каталоге 1, чтобы сначала увидеть, можно ли его найти в каталоге 2, а затем, если он найден, использовать дату, измененную для определения, делать ли копию с 1 или 2 дляновый объединенный каталог.

Я думаю, что с этими 3 частями информации (рекурсивно сравнивать файлы с двумя / двумя каталогами, по пути и по дате изменения) я могу собрать воедино, как это сделать.Хотя я могу посмотреть эти фрагменты отдельно, будет сложно убедить себя, что этот процесс был выполнен правильно, и я хотел бы получить небольшую помощь с фактическим этапом оценки / перемещения, поэтому я меньше беспокоюсь о том, что пропустил некоторые из них.Маленькая, но важная деталь

1 Ответ

0 голосов
/ 15 октября 2018

Не тратьте время на написание сценария, когда robocopy создан для копирования файлов и имеет достаточно параметров, чтобы охватить практически любую ситуацию ...

По умолчанию он будет копировать файл только в том случае, если источники место назначения имеют разные метки времени или разные размеры файлов.

Использование /XO исключит более старые файлы, которые отличаются, поэтому в конечном итоге вы получите только самые новые файлы в месте назначения.

/Eвключает подпапки с пустыми, измените на /S, чтобы не включать пустые.

robocopy C:\source1 C:\destination /E /XO
robocopy C:\source2 C:\destination /E /XO
[etc]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...