Ich habe von meinem FTP-Server einen Verzeichnisbaum heruntergeladen, der Wget verwendet und ASCII-Codierung erzwingt. Daher habe ich jetzt eine Menge Ordner- und Dateinamen wie "foo% C3% BC" (einige der Dateien / Ordner haben bereits korrekte Namen, weil nur sie hatte ASCII-Zeichen).
Ich versuche jetzt, sie mit Powershell wieder in utf-8 umzuwandeln. Ich habe versucht, die folgende Zeile zu schreiben, um dies zu erreichen
Get-ChildItem C:\Users\Administrator\Desktop\folder -Recurse | select BaseName | Rename-Item -NewName {[System.Web.HttpUtility]::UrlDecode{BaseName}}
das funktioniert aber nicht und gibt mir folgenden fehler
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
immer und immer wieder (ich nehme an, einmal für jede gefundene Datei).
Der Befehl funktioniert nur bis zur Pipe nach "select BaseName", sodass das Problem im Umbenennungsteil liegt.
Hat jemand eine Idee, wie es funktioniert?