tl; dr и пример
Я ищу способ сравнить две папки рекурсивно и вывести относительные пути ко всем файлам (и папкам), которые отличаются (по размеру или по временной метке, à la rsync).
например, скажем, у меня есть
C:sourcefooa.txt
C:sourcefoobarb.txt
C:sourcefoobarc.txt
и
C:targetfooa.txt
C:targetfoobarb.txt
C:targetfoobard.txt
C:targetfoobaz
и предположим, что b.txt
было изменено в C:source
, и, таким образом, более новые.
затем дается магический скрипт или команда, скажем,magic C:source C:target
, Я хотел был бы выход к будь
foobarb.txt
или полный путь к исходной или целевой папке также будет приемлем:
C:sourcefoobarb.txt
как показывает пример, меня не волнуют файлы и папки, которые были удалены или созданы!, который должен сделать эту задачу гораздо проще, чем в противном случае.
что я уже знаю...
Я сам разработчик UNIX, и не спрашивал бы, если бы это была система UNIX, с которой мы имеем дело, но увы. Кроме того, это для пользовательские ночное решение резервного копирования, где надежность и целостность данных является приоритетом, так что учитывая, что несколько недель назад я даже не мог понять цикл для пакетного сценария, я уверен, что мне не хватает опыта, чтобы сделать это правильно, или даже определить лучший способ сделать это.
чтение http://www.howtoforge.com/backing-up-with-rsync-and-managing-previous-versions-history, я узнал, что rsync может делать что-то вроде того, что мне нужно, используя параметры как
--dry-run # don't actually rsync (touch) any files
--itemize-changes # list changes rsync _would_ have made
--out-format="%i|%n|" # define an output format for the list of changes
тем не менее, я не хотел бы полагаться на Cygwin (cwRsync) для использования rsync, так как я уже склонен к запуску быстрых и грязных экспериментов на моей установке Cygwin, часто нарушая окружающую среду и необходимости переустановки Cygwin каждые несколько недель. Такого рода выступает против "надежной" части ночного резервного копирования.
Я не нашел никакого "канонического" инструмента, такого как rsync в Windows, по крайней мере, не поддерживающего такие опции, как выше. Также,я не ищу программное обеспечение в общем, если это не простой и компактный инструмент специально для этой цели -я предпочитаю прозрачное, программируемое решение. Для чего-то столь же важного, как резервное копирование файлов, полагаться на программное обеспечение или код, который я не вижу или не понимаю, страшно!
резюме
Я не могу обернуть голову вокруг синтаксиса пакетных сценариев. Далее я попробую PowerShell. Но что бы вы да, дали это задание?- Есть ли какой-то очевидный маршрут, что я не хватает?