|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] файл в нужный каталог |
|
CMD/BAT - [решено] файл в нужный каталог
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать День добрый!
Прошу помощи подсказки в решении bat или PS следующей задачи: имеется каталог с 10 000 вложенными каталогами в большенстве из каталогов есть структура - инфо_1 - инфо_2 и тут могут лежать файлы с именами нужно чтобы файлы с именами инфо_1_хххх лежали во вложенных каталогах инфо_1 инфо_2_хххх лежали во вложенных каталогах инфо_2 если такой каталог отсутствует, то его создать пример в папке 12131231 ----подпапки --------инфо_1 --------инфо_2 в её корне лежат файлы инфо_1_хххх инфо_2_хххх инфо_3_хххх должно получиться в папке 12131231 ----подпапки --------инфо_1 в ней только файлы инфо_1_хххх --------инфо_2 в ней только файлы инфо_2_хххх созданная --------инфо_3 в ней только файлы инфо_3_хххх |
|
Отправлено: 15:11, 16-03-2021 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я правильно понимаю, что каталога:
Цитата mluxor:
Приведите пример реальных имён файлов и каталогов. |
|
Отправлено: 16:41, 16-03-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Iska:
d:\MartStorage\70070\Анкета\ d:\MartStorage\70070\Договор\ d:\MartStorage\70070\ИДС\ d:\MartStorage\70070\План\ d:\MartStorage\70070\Съемка\ d:\MartStorage\70070\Фото\ d:\MartStorage\70070\70070зос.pdf d:\MartStorage\70070\70070 анк.jpg d:\MartStorage\70070\70070_anketa_01_20200116_15-08-19.jpg d:\MartStorage\70070\70070_ppltr_01_20190803_11-24-55.jpg d:\MartStorage\70070\70070_vsgrf_01_20191109_12-01-14.png d:\MartStorage\70070\70070_ppltr_01_20190803_11-25-01.jpg d:\MartStorage\70070\70070_vsgrf_01_20190907_09-53-38.png d:\MartStorage\70070\70070_ct_01_20190803_11-24-16.png d:\MartStorage\70070\70070_vsgrf_01_20190817_16-12-00.png d:\MartStorage\70070\70070_ppltr_01_20190726_22-19-22.jpg d:\MartStorage\70070\70070_vsgrf_01_20190724_16-07-54.png d:\MartStorage\70070\70070_vsgrf_01_20190110_09-47-32.png d:\MartStorage\70070\70070_vsgrf_01_20180709_18-04-00.png d:\MartStorage\70070\70070_vsgrf_01_20180709_17-08-10.png d:\MartStorage\70070\70070_ppltr_01_20180112_18-24-24.jpg d:\MartStorage\70070\70070з.jpg d:\MartStorage\70070\70070с.jpg d:\MartStorage\70070\70070о.jpg ppltr - в план anketa - в анкета 70070з 70070с 70070о - в договор _ct_ - в создаваемую Контроль. Но в каталоге может отсутствовать папка "съемка" или "план" Спасибо! |
|
Отправлено: 08:01, 17-03-2021 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Аналогично и с ppltr и План. Цитата megaloman:
|
||
Отправлено: 09:56, 17-03-2021 | #4 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set "BoxIn=D:\MartStorage\70070" Call :MyMove "%BoxIn%" "_vsgrf_*.*" "Съемка" Call :MyMove "%BoxIn%" "_ppltr_*.*" "План" Call :MyMove "%BoxIn%" "_anketa_*.*" "Анкета" Call :MyMove "%BoxIn%" "_ct_*.*" "Контроль" Call :MyMove "%BoxIn%" "*.*" "Договор" pause Exit /B :MyMove If Not Exist "%~1\%~3" Md "%~1\%~3" >nul Move /Y "%~1\%~n1%~2" "%~1\%~3\" Exit /B Путь указать без \ на конце Договор сделать последним, так как там нет ключевого слова кроме префикса - имени папки. |
|
------- Отправлено: 10:29, 17-03-2021 | #5 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
BoxIn=D:\MartStorage\70070" Подскажите, что поправить, чтобы он обрабатывал вложенные в D:\MartStorage\ ? |
|
Отправлено: 11:05, 17-03-2021 | #6 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать mluxor,
Цитата Iska:
Цитата mluxor:
Объясните, что такое вложенные папки, какая их структура, что в результате надо получить? Пытаюсь домыслить: Есть папка, например: d:\MartStorage В ней есть подпапки, например: D:\MartStorage\70070 D:\MartStorage\70071 D:\MartStorage\70072 D:\MartStorage\70073 Попутно вопрос: у этих подпапапок имена только из цифр? Вложенные в них подпапки не рассматриваются, так как это, например: Съемка План Анкета Контроль Договор Соответствие имен файлов и внутренних подпапок одинаково для всех папок: "имяподпапки_vsgrf_*.*" --> "Съемка" "имяподпапки_ppltr_*.*" --> "План" "имяподпапки_anketa_*.*" --> "Анкета" "имяподпапки_ct_*.*" --> "Контроль" "имяподпапки*.*" --> "Договор" При такой постановке: @Echo Off
cls
Set "BoxIn=D:\MartStorage"
For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\" /B /A:D`) Do (Set "Box=%BoxIn%\%%d"
Call :MyMove "%%Box%%" "_vsgrf_*.*" "Съемка"
Call :MyMove "%%Box%%" "_ppltr_*.*" "План"
Call :MyMove "%%Box%%" "_anketa_*.*" "Анкета"
Call :MyMove "%%Box%%" "_ct_*.*" "Контроль"
Call :MyMove "%%Box%%" "*.*" "Договор"
)
pause
Exit /B
:MyMove
If Not Exist "%~1\%~3" Md "%~1\%~3"
>nul Move /Y "%~1\%~n1%~2" "%~1\%~3\"
Exit /B
|
||
------- Последний раз редактировалось megaloman, 17-03-2021 в 15:02. Отправлено: 14:48, 17-03-2021 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Разработать пакетный файл для перехода студента в личный каталог | new__christmas@vk | Скриптовые языки администрирования Windows | 3 | 31-10-2017 15:32 | |
CMD/BAT - [решено] как скопировать нужный файл в нужную папку с помощью bat | Survover | Скриптовые языки администрирования Windows | 10 | 18-01-2017 22:47 | |
Утилиты - Dr.Web удалил нужный мне файл. | silalex | Защита компьютерных систем | 9 | 07-05-2013 10:30 | |
Установка - Нужный файл находится на сетевом ресурсе, который сейчас недоступен | Per7ik | Microsoft Windows 7 | 2 | 26-09-2010 13:54 | |
Разное - Что делать, если Вы удалили нужный файл (и хотите его восстановить)? | Котяра | Microsoft Windows 2000/XP | 0 | 18-10-2008 20:55 |
|