Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Замена символов [ и ] на ( и ) в имени папки (http://forum.oszone.net/showthread.php?t=353783)

DenchikK 01-07-2023 22:04 3011370

Замена символов [ и ] на ( и ) в имени папки
 
Очень часто есть нужда замены квадратных скобок на круглые в именах папок.
Сейчас я пользую Тотал Коммандер: выделение нужных каталогов, Ctrl M, Поиск и Замена, вбиваю [ и (, потом ещё раз выделяю, Ctrl M, Поиск и Замена, вбиваю ] и ).
Очень сильно напрягает уже, хочется как то автоматизировать сей процесс. Хоть через cmd/bat, хоть через ps1, хоть через vbs.
Целый день гуглю, но получается так делать либо для имён файлов, либо для имен папок не содержащих символы []().
Пытался как-то экранировать символы, конвертировал в юникод - но видимо делаю не так, как надо.
Прошу помощи коллективного разума!

NickM 01-07-2023 22:48 3011372

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

powershell -c "Get-ChildItem * -recurse -directory | Rename-Item -NewName { $_.Name.Replace('[','(').Replace(']',')') }"

DenchikK 02-07-2023 00:00 3011373

Цитата:

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

Великолепно! Спасибо!

YuS_2 02-07-2023 12:06 3011387

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

Get-ChildItem * -recurse -directory -force|? Name -match '\[|\]'|sort fullname -d| Rename-Item -NewName { $_.Name.Replace('[','(').Replace(']',')') } -force
иначе:
1. со вложенными каталогами могут возникнуть проблемы (останутся не переименованными), в процессе переименования.
Поясню:
Если переименовывается родительский каталог, то уже дочерние, стоящие в очереди, переименованы не будут, т.к. путь уже не будет существовать. В этом случае поможет многократный запуск... или сортировка
2. как минимум, скрытые не будут переименованы...
3. без проверки на наличие заменяемых символов, будут вызываться исключения.

DenchikK 02-07-2023 20:39 3011404

Цитата:

Цитата YuS_2
только надо подкорректировать: »

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

YuS_2 03-07-2023 07:53 3011435

Цитата:

Цитата DenchikK
У меня, почему-то, так не работает. »

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


Время: 23:56.

Время: 23:56.
© OSzone.net 2001-