none
Umlaute bereinigen / Ordnerstruktur RRS feed

  • Frage

  • Hallo zusammen,

    ich hoffe ihr könnt mir helfen.

    Zu meinem Problem. Ich habe Dateien die Umlaute beinhalten, welche bereinigt werden müssen.


    Dateipfad:

    ...\Ordner_1\Ordner_2\Ordner_3\Ordner_4\Ordner_5\Ordner_6\Ordner_7\DATEI.xy

    Es wäre super wenn ich ein Script hätte wo ich den Stamm Ordner (z. B. Ordner_1) angeben kann und das Script dann alle Ordner und Dateien durchgeht und die Umlaute ändert.

    ä = "a"
    ö = "o"
    ü = "u"
    ß = "ss"
    Ä = "a"
    Ü = "u"
    Ö = "o"

    Geht das mit Powershell?

    Gruß


    • Bearbeitet dominik.E Montag, 30. März 2015 10:17 Fehler
    Montag, 30. März 2015 10:14

Antworten

Alle Antworten

  • Na sicher geht das. :) Allerdings ist das hier kein Ort an dem man Arbeitsaufträge abgeben kann.
    Ein bischen Eigeninitative musst du schon an den Tag legen, zumal das wirklich keine schwere Aufgabe ist. Google mal nach "Powershell" + "Verzeichnisse durchsuchen", "Array" und "String ersetzen".
     

    Wenn du mit irgend einem Teil ein konkretes Problem hast, kannst du hier natürlich gerne fragen.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Snippet Manager v3: Link
    (Schneller, besser + einfacher scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.


    Montag, 30. März 2015 10:54
    Moderator
  • Hi,

    also das hier wäre mal ein Anfang, denke den Rest schaffts du selbst.

    Du musst noch die Replace erweitern und eventuell noch eine Prüfung einfügen damit nicht jedes File "umbenannt" wird sondern nur die, die ein Umlaut im Namen haben.

    $Folder="c:\Temp"
    
    $files=Get-ChildItem  -Path $Folder -Recurse -File
    
    foreach ($file in $files) {
    
        $NewName=$file.BaseName.Replace("ä","a").replace("ü","u")+$file.Extension
        $file | Rename-Item -NewName $NewName
    
    }


    Seidl Michael | http://www.techguy.at | twitter.com/techguyat | facebook.com/techguyat | youtube.com/techguyat

    Montag, 30. März 2015 13:40
  • Hallo Michael,

    danke für deine Antwort. Wenn ich dein Script ausführe sagt er mir das kein Parameter gefunden wurde der dem Parametername "File" entspricht. Wie kann ich das beheben mit meiner Ordnerstruktur?

    Gruß Dominik

    Dienstag, 7. April 2015 11:57
  • Den "File"-parameter gibt es seit Powershell v3. Für v2 kannst du die Ordner so ausfiltern:
     

    $files = Get-ChildItem -Path $Folder| ? { !$_.PSIsContainer }

     
    Grüße, Denniver
     

    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Snippet Manager v3: Link
    (Schneller, besser + einfacher scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.


    Dienstag, 7. April 2015 12:16
    Moderator