Использование xcopy для копирования файлов из нескольких каталогов в один каталог

Можно ли использовать xcopy для копирования файлов из нескольких каталогов в один каталог с помощью только одной команды xcopy?

Предполагая, что у меня есть дерево каталогов

корень \ Источник \ Суб1 \ Суб2

Я хочу скопировать все файлы .xml из каталога root \ Source, включая подпапку, в root \ Destination. Я не хочу копировать структуру папок, только файлы.


person Oddleif    schedule 25.02.2009    source источник
comment
Тем не менее было бы интересно увидеть xcopy soultion, если возможно   -  person Michal    schedule 26.11.2011
comment
Для командного способа, отличного от DOS, попробуйте this- pcworld.com/article/2105149/   -  person Swastik Padhi    schedule 29.10.2015


Ответы (4)


Как сказал DandDI, вам не нужно xcopy. для постановки очень помогает. Однако вам не нужно также указывать результат процесса команды dir, эта команда помогает лучше

for /R c:\source %f in (*.xml) do copy "%f" x:\destination\

Кстати, когда вы используете его из командного файла, вам нужно добавить запасной% перед переменной% f, следовательно, ваша командная строка должна быть;

for /R c:\source %%f in (*.xml) do copy %%f x:\destination\

когда вы используете его в партии

  • Следует заключить% f в двойные кавычки, иначе он не сможет скопировать имена файлов с пробелами.
person kokeksibir    schedule 25.02.2009
comment
возможно ли решение xcopy - я нашел способ копировать файлы и папки, но я хотел бы захватить только файлы - person Michal; 26.11.2011
comment
У меня есть вопрос по этому поводу, не могли бы вы мне помочь? если в целевом каталоге уже есть файлы, тогда я не хочу переопределять / заменять существующие файлы и копировать только те файлы, которые были добавлены в исходный код напрямую. - person user1699227; 29.08.2017
comment
К сожалению, я больше не пишу сценарии DOS, но полагаю, что замена copy %%f x:\destination\ на xcopy %%f x:\destination\ /Y должна помочь. Проверьте xcopy документацию. - person kokeksibir; 05.09.2017

Для этого вам не нужен xcopy. Вы можете получить список всех файлов, которые вам нужны, и таким образом выполнить копирование.

Например, в командной строке Windows XP:

for /f "delims==" %k in ('dir c:\source\*.xml /s /b') do copy "%k" x:\destination\

/ S входит во все подкаталоги, а / b перечисляет только имена файлов и путь. Каждому inturn файла присваивается переменная% k, затем команда копирования копирует файл в место назначения. Единственная уловка - убедиться, что пункт назначения не является частью источника.

person Community    schedule 25.02.2009

Ответ на эту проблему, который, как мне кажется, звучит так: «Как собрать все ваши файлы из всех маленьких подкаталогов в один единственный каталог» - это загрузить программу под названием XXCOPY. Это бесплатно доступно на XXCOPY.COM, и, к счастью, есть бесплатная некоммерческая версия. Один из часто задаваемых вопросов по справочной системе на XXCOPY.COM - это, по сути, «Как мне собрать все мои файлы в один каталог», и он сообщает вам, какой переключатель использовать. XXCOPY - это верный способ сделать это, и он поставляется в виде архива .zip, поэтому его разархивирование может быть не таким простым, но и не особо сложным. На веб-сайте ZipGenius.it есть программа для распаковки под названием ZipGenius, так что, возможно, прежде чем вы загрузите XXCOPY, затем загрузите ZipGenius, тогда это будет небольшой двойной двойной вамми (!)

person Victor Evans    schedule 22.02.2013

Возможно, это не точный ответ, но если кто-то захочет сделать это без кодирования.

Вы можете выполнить поиск по названию элемента в определенной папке, а затем скопировать результаты, а затем вставить их в нужную папку. Он переименует тот же файл в папку, которую я считаю префиксом, а затем повторяющимся именем.

person Kjeld W Pedersen    schedule 11.10.2020