CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки

Ответить
Аватара пользователя
DenchikK

CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки

Сообщение DenchikK »

Очень часто есть нужда замены квадратных скобок на круглые в именах папок.

Сейчас я пользую Тотал Коммандер: выделение нужных каталогов, Ctrl M, Поиск и Замена, вбиваю [ и (, потом ещё раз выделяю, Ctrl M, Поиск и Замена, вбиваю ] и ).

Очень сильно напрягает уже, хочется как то автоматизировать сей процесс. Хоть через cmd/bat, хоть через ps1, хоть через vbs.

Целый день гуглю, но получается так делать либо для имён файлов, либо для имен папок не содержащих символы []().

Пытался как-то экранировать символы, конвертировал в юникод - но видимо делаю не так, как надо.

Прошу помощи коллективного разума!
Аватара пользователя
DenchikK

Re: CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки

Сообщение DenchikK »

Что-нибудь типа такого?



Код:

Код: Выделить всё

powershell -c "Get-ChildItem * -recurse -directory | Rename-Item -NewName { $_.Name.Replace('[','(').Replace(']',')') }"
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки

Сообщение YuS_2 »

NickM, только надо подкорректировать:



Код:

Код: Выделить всё

Get-ChildItem * -recurse -directory -force|? Name -match '\[|\]'|sort fullname -d| Rename-Item -NewName { $_.Name.Replace('[','(').Replace(']',')') } -force

иначе:

1. со вложенными каталогами могут возникнуть проблемы (останутся не переименованными), в процессе переименования.

Поясню:

Если переименовывается родительский каталог, то уже дочерние, стоящие в очереди, переименованы не будут, т.к. путь уже не будет существовать. В этом случае поможет многократный запуск... или сортировка

2. как минимум, скрытые не будут переименованы...

3. без проверки на наличие заменяемых символов, будут вызываться исключения.
Аватара пользователя
DenchikK

Re: CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки

Сообщение DenchikK »

Цитата YuS_2:



только надо подкорректировать:
CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки




У меня, почему-то, так не работает. А команда NickM срабатывает.
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки

Сообщение YuS_2 »

Цитата DenchikK:



У меня, почему-то, так не работает.
CMD/BAT - [решено] Замена символов [ и ] на ( и ) в имени папки




Наверное, powershell надо обновить (а лучше сразу powershell Core использовать), тогда будет работать...
Ответить

Вернуться в «Скриптовые языки администрирования Windows»