Копировать все файлы из списка папок

Копировать все файлы из списка папок

У меня есть список папок, из которых я хотел бы скопировать все содержащиеся в них файлы. Список папок хранится в отдельной строке текстового файла (.txt). Все файлы должны быть скопированы в одно и то же место.

Как выполнить это упражнение, используя этот список папок в сочетании с функцией копирования в командной строке?

решение1

Рассмотрим файл с похожим содержимым, содержащий список каталогов, например:

c:
c:\users 
c:\anyotherfolder

xcopyвнутри forцикла будет сделано то же самое :)

for /f %a in (list.txt) do xcopy /e %a\* c:\destination_folder\

(копируя все дерево каталогов (благодаря /e) )


%Если вы хотите сохранить и выполнить переменную в отдельном .batфайле, следует добавить к ее имени дополнительный символ .

решение2

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

Команда For Do теперь использует CSV-файл для получения путей к папкам. Раньше было необходимо включить эту "delims=,"опцию в команду For.

for /f "delims=," %a in (D:\Batch_Files\Test_Bench\Folders_List.csv) do copy "%a\*" D:\Batch_Files\Test_Bench\Paste_All_The_Files_Here

Записи, разделенные запятыми, позволяют получить For /fдоступ к местоположениям, содержащим пробелы, но только если токен %a\*заключен в « ».

Связанный контент