1

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

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

2 ответа2

3

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

c:
c:\users 
c:\anyotherfolder

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

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

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


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

0

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

Команда 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\* заключен в "".

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