![]() |
Замена символов [ и ] на ( и ) в имени папки
Очень часто есть нужда замены квадратных скобок на круглые в именах папок.
Сейчас я пользую Тотал Коммандер: выделение нужных каталогов, Ctrl M, Поиск и Замена, вбиваю [ и (, потом ещё раз выделяю, Ctrl M, Поиск и Замена, вбиваю ] и ). Очень сильно напрягает уже, хочется как то автоматизировать сей процесс. Хоть через cmd/bat, хоть через ps1, хоть через vbs. Целый день гуглю, но получается так делать либо для имён файлов, либо для имен папок не содержащих символы [](). Пытался как-то экранировать символы, конвертировал в юникод - но видимо делаю не так, как надо. Прошу помощи коллективного разума! |
Что-нибудь типа такого?
Код:
powershell -c "Get-ChildItem * -recurse -directory | Rename-Item -NewName { $_.Name.Replace('[','(').Replace(']',')') }" |
Цитата:
|
NickM, только надо подкорректировать:
Код:
Get-ChildItem * -recurse -directory -force|? Name -match '\[|\]'|sort fullname -d| Rename-Item -NewName { $_.Name.Replace('[','(').Replace(']',')') } -force 1. со вложенными каталогами могут возникнуть проблемы (останутся не переименованными), в процессе переименования. Поясню: Если переименовывается родительский каталог, то уже дочерние, стоящие в очереди, переименованы не будут, т.к. путь уже не будет существовать. В этом случае поможет многократный запуск... или сортировка 2. как минимум, скрытые не будут переименованы... 3. без проверки на наличие заменяемых символов, будут вызываться исключения. |
Цитата:
|
Цитата:
|
Время: 23:56. |
Время: 23:56.
© OSzone.net 2001-