eu baixei do meu servidor ftp uma árvore de diretório usando wget e forçando a codificação ascii então agora eu tenho um monte de pastas e arquivos nomes algo como "foo% C3% BC" (alguns dos arquivos / pastas já possuem nomes corretos) porque eles só tinham caracteres ascii).
Agora estou tentando voltar para o utf-8 usando o powershell, tentei escrever a seguinte linha para realizar isso
Get-ChildItem C:\Users\Administrator\Desktop\folder -Recurse | select BaseName | Rename-Item -NewName {[System.Web.HttpUtility]::UrlDecode{BaseName}}
mas isso não está funcionando e me dá o seguinte erro
Rename-Item : Cannot rename because item at '@{BaseName=filename}' does not exist.
At line:1 char:88
+ ... ect BaseName | Rename-Item -NewName {[System.Web.HttpUtility]::UrlDecode{BaseNam ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
de novo e de novo (suponho uma vez para cada arquivo encontrado).
O comando funciona corretamente até o pipe após "select BaseName", então o problema está na parte de renomeação.
Alguém tem alguma ideia de como fazer isso funcionar?
Tags batch powershell-2.0