Remove um caractere dos nomes dos arquivos em todas as pastas de uma determinada pasta

3

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!

    
por Rich Lewis 25.04.2017 / 22:19

1 resposta

2

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.
por 25.04.2017 / 22:51