Переименовать все папки с указанным именем в каталоге, используя powershell - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу найти все папки в каталоге по имени, например, Help и переименовать их в blah.Я пробовал это:

Get-ChildItem -Path 'C:\dev\foo' -Filter 'Help' -Recurse | ForEach-Object {
    Rename-Item -Path $_.FullName -NewName 'blah'
}

, но, похоже, не работает.Есть идеи?Приветствия

1 Ответ

0 голосов
/ 10 декабря 2018
$path = "C:\dev\foo"
$oldName = "Help"
$newName = "blah"

Get-ChildItem -Path $path -Filter "*$oldName*" -Recurse | 
    Rename-Item -NewName { $_.name -Replace $oldName, $newName } -WhatIf

Вы пропустили подстановочный знак - "*$oldName*".Таким образом, вы ищете все папки , содержащие в названии справку , а не только папку с именем Справка .Параметр -WhatIf покажет вам все папки, которые будут переименованы без фактического переименования.Удалите его, когда проверьте, будет ли результат правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...