Powershell nome do arquivo recursivo lido e renomeado

1

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?

    
por John Smith 03.11.2016 / 17:04

0 respostas