![]() |
Создать копию (дубль) файла в подпапках
Здравствуйте.
Пожалуйста, научите, как при помощи cmd/bat файла сделать копию файла с точным названием с подпапках? Например, есть много папок, в этих папках есть подпапки, в каждой из подпапок есть один и тот же файл с точным названием, например Вася.doc 1) Нужно в файле cmd/bat задать имя исходного файла Вася.doc 1) Нужно в файле cmd/bat задать путь-корень, например C:\Root\ 3) Запустить cmd/bat файл 4) На выходе в каждой подпапке внутри папки C:\Root\ будет создан файл Вася - копия.doc Структура такая: C:\Root\Привет 1\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc ... C:\Root\Привет 2\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc ... C:\Root\Привет 3\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc ... Черным, жирным выделил то, что меняется - это название папок На выходе хочется так C:\Root\Привет 1\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 1\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 1\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 1\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 1\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... C:\Root\Привет 2\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 2\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 2\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 2\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 2\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... C:\Root\Привет 3\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 3\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 3\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc C:\Root\Привет 3\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc C:\Root\Привет 3\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... Спасибо. |
например:
Код:
@echo off |
alpap
Здравствуйте. В программе AkelPad поправил код, выглядит так (кодировка 866) - файл 1.cmd Код:
@echo off Приношу извинения, если не корректно не упомянул про русские буквы в названии папок, русские буквы в имени папок и файлов, пробелы и так далее, хотелось бы как написал в этом коде структуру Код:
set "d=H:\Sort\Новая папка\2020-06-30_Л" H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc ... H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc ... H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc ... Черным, жирным выделил то, что меняется - это название папок На выходе хочется так H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 1\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 2\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-1\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-2\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-3\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552.doc H:\Sort\Новая папка\2020-06-30_Л\Привет 3\Папка-4\2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... |
SharkyEXE, временно уберите «>nul» и добавьте «rem» перед «@echo off» и посмотрите, что не так.
|
Iska
Здравствуйте Пишет, Не удаётся найти указанный файл При этом файл 2020_Лст_о_30 января 2020 г. № 15_552.doc 200% есть в папках Я может быть соовсем не так написал, просто по моей идее надо заходить в подпапку и внутри подпапки копировать файл 2020_Лст_о_30 января 2020 г. № АЛ-15_552.doc как 2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc Выйти из подпапки Потом заходить в другую подпапку ниже и внутри подпапки копировать файл 2020_Лст_о_30 января 2020 г. № АЛ-15_552.doc как 2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc Выйти из подпапки Потом заходить в другую подпапку ниже и внутри подпапки копировать файл 2020_Лст_о_30 января 2020 г. № АЛ-15_552.doc как 2020_Лст_о_30 января 2020 г. № 15_552 - копия.doc ... Да, еще - у автора кода изначально исходное имя файла - указано как путь set "fi=C:\Вася.doc" Мне же надо указать просто исходное имя файла включая расширение set "fi=Вася.doc" (без C:\) PS. Вроде как помогло - изменения выделил Было for /d /r "%d%" %%d in ("*") do >nul copy /y "%fi%" "%%d\%fo%" Стало for /d /r "%d%" %%d in ("*") do >nul copy /y "%%d\%fi%" "%%d\%fo%" Рабочий код Код:
@echo off |
PowerShell
Код:
param( |
Время: 23:05. |
Время: 23:05.
© OSzone.net 2001-