Я пытаюсь делать резервные копии критически важных папок и их содержимого на ежедневной основе, чтобы в случае сбоя моего диска с данными у меня была резервная копия важных файлов проекта, но мой рабочий диск с данными намного больше моего резервного диска (19:6), поэтому Я хотел бы ограничить резервное копирование только важными файлами:

RoboCopy %Source% %Dest% *.* /s /xo /purge

работает; /xo ускоряет резервное копирование, пропуская файлы без изменений (это необходимо, так как для резервного копирования 4+ ТБ данных потребуется больше дня), а /purge гарантирует, что на резервном диске нет копий файлов, которые я больше не храню необходимость.

Проблема в том, что в папках с именем QA есть файлы, из которых я никогда не хочу хранить резервные копии, поэтому указание /xd QA должно пропускать эти файлы ... но именование не согласовано, иногда это QA, иногда QA_v2 (или 3 или 4) другие примеры включают такие даты, как QA_20160708. Я искал сообщения, подобные этой, которые, кажется, говорят, что можно использовать подстановочный знак, но все комбинации:

RoboCopy %Source% %Dest% *.* /s /xo /purge /xd "*QA*"
RoboCopy %Source% %Dest% *.* /s /xo /purge /xd *QA*
RoboCopy %Source% %Dest% *.* /s /xo /purge /xf "*QA*"
RoboCopy %Source% %Dest% *.* /s /xo /purge /xf *QA*
RoboCopy %Source% %Dest% *.* /s /xo /purge /xd QA
RoboCopy %Source% %Dest% *.* /s /xo /purge /xf QA

все еще скопируйте папку с именем QA_v2 в %Source% .

Есть ли надежный способ пропустить папки и подпапки папок, которые содержат строку с подстановочными знаками? Может быть важно (или нет), что я использую командный файл в качестве запланированной задачи.

Я мог бы сделать это с помощью скрипта Python, используя os.walk но shutil.copyfile действительно медленный по сравнению с RoboCopy так что это было бы абсолютным последним средством.

0