powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Замена символов в название папки Powershell
13 сообщений из 13, страница 1 из 1
Замена символов в название папки Powershell
    #39566380
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите код который будет искать в указанной папке под папки и если в их название есть % то заменить на _
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39566382
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или на C# код
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39566384
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39566432
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
ls -recourse Папка  -include *%* -Directory | %{ Rename-Item $_.FullName ($_.Name -replace '%', '_') } 
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39566930
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот скрипт

Код: powershell
1.
2.
3.
4.
5.
6.
7.
cls
write-host "---------------------------------------------------"
write-host "Удаление % в имени подкаталогов в указаном каталоге"
write-host "---------------------------------------------------"
''
$catalog = Read-Host "Укажите каталог"
Get-ChildItem $catalog -Recurse -include *%* | %{ Rename-Item $_.FullName ($_.Name -replace '%', '') } # удалить % в имени каталога



В нем есть два не достатка

1. Он работает так:
видит подкаталог убирает в имени %, в этом же подкаталоге есть еще один каталог с % скрипт % не убирает, но странно в том, что если запускаю повторно скрипт % убирает в каталоге в котором с первого раза не убрал!

2. А так же он почему то % с имени файлов убирает, а этого не надо

3. Если в пути указном каталоге (
Код: powershell
1.
$catalog

) есть пробел то получаю ошибки, но скрипт отрабатывает см. пункты.1, 2

Может кто подскажет в чем дело? ключ -Recurse сюдя по инфе он должен сказать о том, чтобы смотрел на все подкаталоги, но не хочет.

Заранее спасибо
На вопросы смогу ответить только 13 декабря
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39566931
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry, не два, а три не достатка ))
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39566935
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну очевидно же, что после переименования каталога изменился (полный) путь ко всем вложенным подкаталогам. Если PS сначала делает рекурсивный обход и только потом начинает переименование, то получаем проблему.
В данном конкретном случае требуется обход в глубину: сначала проходим до конца один путь и только потом начинаем переименовывать "постепенно поднимаясь наверх". Только после этого идём по следующему пути.
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39567339
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. ключ -Directory (см мой скрипт)


Разберитесь как работают параметры в powershell - (param())

Да, наверное надо в пайплайн вставит сортировку

ls .... | sort FullName -Descending | %{ Rename-Item ... }

Тогда более вложенные папки будут вначале
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39569386
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решил проверить работу скрипта в Powershell версии 3.0
Код: powershell
1.
2.
3.
$Path = Read-Host "Укажите каталог";
$catalogs = Get-ChildItem $Path -Recurse  | where {$_.PSIsContainer} | where-object  {$_.name -like '*%*'}
$catalogs | Rename-Item -NewName {$_.Name -Replace '%', ''} 



то такой код работает
так как надо т.е. убирает из имен подкаталогов % выбраного каталога
это если скрипт запустить в Powershell 3.0

А в Powershell 2.0 не работает

Тут написали, что нужно указать с начало. чтобы скрипт начал работу с конца и продолжал изменять имена подкаталогов двигаясь вверх по дереву каталога, но как это сделать я не знаю, может кто то подскажет????
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39569387
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014решил проверить работу скрипта в Powershell версии 3.0
Код: powershell
1.
2.
3.
$Path = Read-Host "Укажите каталог";
$catalogs = Get-ChildItem $Path -Recurse  | where {$_.PSIsContainer} | where-object  {$_.name -like '*%*'}
$catalogs | Rename-Item -NewName {$_.Name -Replace '%', ''} 



то такой код работает
так как надо т.е. убирает из имен подкаталогов % выбраного каталога
это если скрипт запустить в Powershell 3.0

А в Powershell 2.0 не работает

Тут написали, что нужно указать с начало. чтобы скрипт начал работу с конца и продолжал изменять имена подкаталогов двигаясь вверх по дереву каталога, но как это сделать я не знаю, может кто то подскажет????

а не стоп по поводу Тут написали, что нужно указать с начало. чтобы скрипт начал работу с конца и продолжал изменять имена подкаталогов двигаясь вверх по дереву каталога, но как это сделать я не знаю, может кто то подскажет????[/quot]



отбой
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39569429
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос решен....
все равнно как с этими версиями фигово получается
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39571218
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014все равнно как с этими версиями фигово получается

версия должна быть 5.1 на тек. момент.

про 1.0 2.0 3.0 4.0 забыть. и это не моё мнение, а майкрософт.
...
Рейтинг: 0 / 0
Замена символов в название папки Powershell
    #39571727
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661SAS2014все равнно как с этими версиями фигово получается

версия должна быть 5.1 на тек. момент.

про 1.0 2.0 3.0 4.0 забыть. и это не моё мнение, а майкрософт.

забыть не забыть но пока по умолчанию на win7 стоит 2.0 то писать скрипты на 5.0 нет смысла
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Замена символов в название папки Powershell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]