|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование папок по маске |
|
CMD/BAT - [решено] Переименование папок по маске
|
Новый участник Сообщения: 30 |
Профиль | Отправить PM | Цитировать
Есть папки с именами F-LDR*. Нужно добавить к их именам суффикс __MY, т.е. привести к виду F-LDR*__MY.
И противоположная задача (более важная): Есть папки с именами F-LDR*__MY. Нужно убрать из их имен суффикс __MY, т.е. привести к виду F-LDR*. (ReNamer такое делает, в т.ч. и с папками, но хотелось бы то же выполнять из пакетного файла - быстрее и удобнее). Интересует только CMD/BAT. Все папки непустые, будут лежать в одном каталоге и на одном уровне с требующимся батником; подпапки не трогать. (Гуглил, но ничего подобного для папок не нашел... Если возможно, научите. Спасибо!) |
|
Отправлено: 00:15, 07-01-2019 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать YuS_2, спасибо.
Опробовал. Так убираются из имен все __MY, которые встречаются в любом количестве не только как суффикс, но и в любом месте *-части имени. Но мне (как вариант) это подходит, т.к. в моем (частном) случае 1 шт. __MY и только как суффикс, т.е. ничего лишнего не удалится. И компактно! |
Отправлено: 14:53, 07-01-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата dassen:
Но если надо что-то более точное, то присмотреться необходимо к powershell и регэкспам, с ними всё гораздо проще решается. |
|
------- Отправлено: 15:33, 07-01-2019 | #12 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать dassen, Если Вам всё равно, в каком месте убивается __My, если надо чтобы кратко (что мне совсем не нравится, удобнее иметь легко настраиваемый код):
@Echo Off
rem Удалить
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "F-LDR*__My.*" /B /A:D`) DO Set "N=%%d" &Call Ren "%%d" "%%N:__My=%%"
rem Добавить
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "F-LDR*.*" /B /A:D`) Do Ren "%%d" "%%~nd__My%%~xd"
Если добавить (при этом чтобы суффиксы не дублировались, сначала их удаляем) - оставляем все строки И, чтобы совсем кратко, убиваем строки с Rem При использовании setlocal enabledelayedexpansion будут проблемы с именами папок, если в именах есть "!" |
------- Последний раз редактировалось megaloman, 07-01-2019 в 16:21. Отправлено: 16:05, 07-01-2019 | #13 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать megaloman, спасибо.
Цитата megaloman:
"!" в имени - и имя папки просто не обрабатывается (мне пока среди моих F-LDR*такие не попадались, но кто знает...) Цитата megaloman:
А что касается "добавить" - здесь я за краткостью не гонюсь, и вопросы у меня еще будут (не сегодня). |
||
Последний раз редактировалось dassen, 07-01-2019 в 21:22. Отправлено: 17:24, 07-01-2019 | #14 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать А как рекурсивно по всем подкаталогам пройтись таким переименованием?
|
Отправлено: 13:40, 13-05-2020 | #15 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать @Echo Off
Call :DelSuff "Z:\Box_In\F-LDR*__My.*" "__My"
Call :AddSuff "Z:\Box_In\F-LDR*.*" "__My"
Exit /B
:DelSuff
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir %1 /S /B /A:D ^|Sort /R`) DO (
Set "N=%%~nd" &Call Ren "%%d" "%%N:__My=%%%%~xd"
)
Exit /B
:AddSuff
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir %1 /S /B /A:D ^|Sort /R`) DO (
Call Ren "%%d" "%%~nd%~2%%~xd"
)
Exit /B
|
------- Последний раз редактировалось megaloman, 13-05-2020 в 16:47. Отправлено: 16:25, 13-05-2020 | #16 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Переименование файла по маске. | Damien_here | Скриптовые языки администрирования Windows | 5 | 13-06-2017 12:51 | |
CMD/BAT - Пакетное переименование файлов по маске | Viktor99 | Скриптовые языки администрирования Windows | 1 | 15-08-2016 23:25 | |
CMD/BAT - [решено] Переименование имени файла по маске | Дмитрий_Кульгейко@vk | Скриптовые языки администрирования Windows | 10 | 12-07-2016 20:15 | |
CMD/BAT - Переименование фалов по маске | mych_man | Скриптовые языки администрирования Windows | 19 | 01-06-2016 15:00 | |
CMD/BAT - Переименование файлов по маске | tobornforlife@vk | Скриптовые языки администрирования Windows | 5 | 24-02-2014 17:07 |
|