![]() |
файл в нужный каталог
День добрый!
Прошу помощи подсказки в решении bat или PS следующей задачи: имеется каталог с 10 000 вложенными каталогами в большенстве из каталогов есть структура - инфо_1 - инфо_2 и тут могут лежать файлы с именами нужно чтобы файлы с именами инфо_1_хххх лежали во вложенных каталогах инфо_1 инфо_2_хххх лежали во вложенных каталогах инфо_2 если такой каталог отсутствует, то его создать пример в папке 12131231 ----подпапки --------инфо_1 --------инфо_2 в её корне лежат файлы инфо_1_хххх инфо_2_хххх инфо_3_хххх должно получиться в папке 12131231 ----подпапки --------инфо_1 в ней только файлы инфо_1_хххх --------инфо_2 в ней только файлы инфо_2_хххх созданная --------инфо_3 в ней только файлы инфо_3_хххх |
Я правильно понимаю, что каталога:
Цитата:
Приведите пример реальных имён файлов и каталогов. |
Цитата:
Код:
d:\MartStorage\70070\Анкета\ ppltr - в план anketa - в анкета 70070з 70070с 70070о - в договор _ct_ - в создаваемую Контроль. Но в каталоге может отсутствовать папка "съемка" или "план" Спасибо! |
Цитата:
Аналогично и с ppltr и План. Цитата:
|
Код:
@Echo Off Путь указать без \ на конце Договор сделать последним, так как там нет ключевого слова кроме префикса - имени папки. |
Цитата:
BoxIn=D:\MartStorage\70070" Подскажите, что поправить, чтобы он обрабатывал вложенные в D:\MartStorage\ ? |
mluxor,
Цитата:
Цитата:
Объясните, что такое вложенные папки, какая их структура, что в результате надо получить? Пытаюсь домыслить: Есть папка, например: d:\MartStorage В ней есть подпапки, например: D:\MartStorage\70070 D:\MartStorage\70071 D:\MartStorage\70072 D:\MartStorage\70073 Попутно вопрос: у этих подпапапок имена только из цифр? Вложенные в них подпапки не рассматриваются, так как это, например: Съемка План Анкета Контроль Договор Соответствие имен файлов и внутренних подпапок одинаково для всех папок: "имяподпапки_vsgrf_*.*" --> "Съемка" "имяподпапки_ppltr_*.*" --> "План" "имяподпапки_anketa_*.*" --> "Анкета" "имяподпапки_ct_*.*" --> "Контроль" "имяподпапки*.*" --> "Договор" При такой постановке: Код:
@Echo Off Код:
For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\" /B /A:D ^| findstr.exe /R /C:"^[0-9]*$"`) Do (Set "Box=%BoxIn%\%%d" |
Время: 12:10. |
Время: 12:10.
© OSzone.net 2001-