Копировать файлы путем перетаскивания гораздо удобнее и быстрее, чем с помощью традиционного Copy-Paste. Функция Drag-and-Drop также позволяет копировать объекты в разные папки, удерживая при этом зажатой клавишу Ctrl, но как ни крути, это занимает намного больше времени, чем если бы копирование производилось во все выбранные папки одновременно. Представьте, что вам нужно скопировать некий файл во все вложенные папки какого-то каталога, причем количество этих вложенных папок достигает нескольких десятков.
Понятно, что ни Copy-Paste, ни Drag-and-Drop не позволят вам сделать это за минуту, здесь нужен более продвинутый метод.
Для подобных целей существуют специальные программы, но можно обойтись и без них, воспользовавшись самой обычной командной строкой, вернее, командным файлом.
Скопируйте приведенный ниже код и вставьте его в обычный текстовый файл.
@echo off
for /D %%a in ("C:\Data\*.*") do xcopy /y /d "D:\Im.jpg" "%%a"
В коде скрипта есть два пути C:\Data и D:\Im.jpg, первый — это путь к каталогу со всеми вложенными в него папками, в которые будет копироваться файл, второй — это путь к копируемому объекту, служить которым может не только файл, но и папка.
Замените пути своими и сохраните отредактированный файл с расширением BAT или CMD.
Название скрипта оставляем на ваше усмотрение.
Запустите скрипт и файл будет скопирован в дочерние папки указанного родительского каталога до первого уровня вложенности.
В момент исполнения скрипта на экране появится окошко командной строки и тут же закроется, как только процедура копирования будет завершена. Если вы хотите просмотреть прогресс, добавьте в конец кода командного файла команду pause, это даст вам возможность закрыть консоль вручную нажатием любой клавиши.
Пробовала этот код - выдает верхней строкой: "Не найден файл: название файла"
Путь точно указан верно.
Подскажите, в чем может быть проблема
имена папок с файлами должны быть все на латинице!
А если мне нужно не конкретный файл скопировать, а все содержимое папки?
Могу ошибаться, но можно попробовать в конце пути файла для передачи вписать "\*.*" по аналогии с путём к каталогу со всеми папками
Очень круто! Буду ещё читать статьи автора! Для "опытного пользователя", но ещё не экспекта всё очень доходчиво написано!
А если надо скопировать папку с файлом внутри + отдельный файл, т.е. два разных объекта
поправьте на:
@echo off
for /D %%a in ("C:\Data\*.*") do xcopy /y /d "D:\Im.jpg" "%%a\"
Пишет "недопустимое число параметров"
Есть папка в которой есть много разных папок и подпапок, нужно раскидать файл в конечные папки