Я пытаюсь автоматизировать некоторые задачи ... Я должен выполнить некоторые разработки на одной машине, а другие части - на другой, с обменом данными через общий сетевой ресурс.

Я хотел бы скопировать определенные файлы, а не целые каталоги, которые могут содержать множество дополнительных элементов сборки, некоторые большие.

Что-то вроде

set source="C:\Users\me\Documents\sourcefolder"
set dest="\\SHARE\FOLDER\me\destfolder"
xcopy %source%+"*.cpp" %dest%

Как я могу сделать такую команду? скопировать все файлы с данным шаблоном (например, * .cpp) из источника в место назначения?

Кроме того - это можно сделать рекурсивно - для всех папок внутри источника?

Редактировать:

Попытка

xcopy "C:\Users\me\Documents\sourcefolder\*.cpp" "\\SHARE\FOLDER\me\destfolder\"

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

Тем не менее ... для достижения наилучших результатов, для сложной структуры каталогов, я хотел бы иметь возможность использовать переменные и, возможно, копировать рекурсивно - есть много каталогов, которые мне нужно скопировать.

Кроме того, шаблоны, которые я хочу скопировать, являются чем-то вроде «все файлы с расширением .cpp, кроме тех, которые начинаются с moc_» или «« все файлы с расширением .h, кроме тех, которые начинаются с ui_ ».

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

1 ответ1

0

Не указали свою ОС и среду. Если вы можете использовать robocopy, у вас есть все инструменты, необходимые для этого, в зависимости от ваших данных:

robocopy% source%% Dest% * .cpp /s

скопирует все файлы cpp из источника в dest

он включает в себя много других опций для автоматизации этой задачи в зависимости от того, что именно вы хотите. просто сделать робокопию /? и он перечислит их. Например, вы можете сделать пробную робокопию, которая показывает только то, что она сделала бы, если бы это было по-настоящему. /L :: Только список - не копируйте, не ставьте отметки времени и не удаляйте файлы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .