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

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

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

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

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

Ответов (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 в двойные кавычки, иначе имя файла не будет скопировано с пробелами.

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

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

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

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

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

for / f "delims =="% k in ('dir c: \ source \ *. xml / s / b') скопируйте "% k" x: \ destination \

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