Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


mluxor,
Цитата Iska:
Приведите пример реальных имён файлов и каталогов. »
Как привели, так и получили.
Цитата mluxor:
что поправить, чтобы он обрабатывал вложенные в D:\MartStorage\ ? »
Объяснить задачу, чтобы не пришлось домысливать.
Объясните, что такое вложенные папки, какая их структура, что в результате надо получить? Пытаюсь домыслить:

Есть папка, например:
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
Если имена подпапок должны быть только из цифр, то For, для контроля, можно записать как:
Код: Выделить весь код
	For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\" /B /A:D ^| findstr.exe /R /C:"^[0-9]*$"`) Do (Set "Box=%BoxIn%\%%d"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 17-03-2021 в 15:02.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:48, 17-03-2021 | #7