Tente:
Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") }
-
-Filter
é muito mais rápido que um where / foreach. -
-Recurse
itera através de subpastas - Renomear-Item aceita entrada canalizada.
Usando um script, consegui renomear inadvertidamente tudo em uma pasta home do usuário no servidor - para que cada arquivo em cada pasta (e pastas dentro das pastas) fosse renomeado para ter um "$" no final. Tudo o que eu estava tentando fazer era renomear a pasta pessoal de cada usuário para foldername $, a ser ocultada ao procurar pastas compartilhadas.
Para encurtar a história, descobri como me livrar do "$" de todos os arquivos de uma pasta, mas isso não é aplicado a todas as pastas-filhas:
get-childitem * | foreach { rename-item $_ $_.Name.Replace("$","") }
Alguém sabe como modificar isso para remover os símbolos $ do final de cada arquivo em cada pasta em uma pasta?
Obrigado!
Tente:
Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") }
-Filter
é muito mais rápido que um where / foreach. -Recurse
itera através de subpastas Tags batch-rename powershell