none
Umbenennen von Ordnern durch PS-Script RRS feed

  • Frage

  • Hallo zusammen,

    habe ja gestern schon eine Frage über das Kopieren in Ordner gestellt.

    Nun ist es jedoch so, dass es einige Ordner gibt, die ein Sonderzeichen im Namen haben.

    In diese kopiert er zwar auch die Dateien, arbeitstechnisch ist es jedoch so, dass durch die Sonderzeichen

    ein nicht gewünschter Effekt auftritt.

    Meine Frage nun: Kann man im Script ein Umbenennen der Ordner veranlassen? Ich habe schonmal ein bisschen im Forum

    gesucht und etwas zum Ändern von Strings gefunden:

     

    $CopyFolders = [System.IO.Directory]::GetDirectories($DestinationPath,"*","AllDirectories")

    foreach ($Folder in $CopyFolders){

     
        if ($Folder -match "ä") {$Folder = $Folder -replace "ä", "ae"}
        if ($Folder -match "ö") {$Folder = $Folder -replace "ö", "oe"}
        if ($Folder -match "ü") {$Folder = $Folder -replace "ü", "ue"}
        if ($Folder -match "ß") {$Folder = $Folder -replace "ß", "ss"}

    }

     

    In der Konsole werden die Ordnername auch umgewandelt angezeigt (aus Neuä Ordner wird Neuae Ordner), im Dateisystem stehen die Ordner jedoch

    mit dem gleichen Namen wie vorher.

    Gibt es eine Möglichkeit, die Änderung ebenfalls im Datei-System durchführen zu lassen? Brauche ich dafür besondere Rechte?

    Vielen Dank bereits im Voraus,

    Zuckerfry

    Donnerstag, 11. August 2011 06:43

Antworten

Alle Antworten

  • Weitere Infos:

    Hab nun weiter bissle gesucht und gebastelt, hab das CMDlet "rename-item" gefunden, mit dem ich theoretisch meinen Ordner umbenennen könnte.

    Wenn ich jedoch folgendes mache:

     

    $CopyFolders = [System.IO.Directory]::GetDirectories($DestinationPath,"*","AllDirectories")

    foreach ($Folder in $CopyFolders){

     
        if ($Folder -match "ä") {

              $NewFolder = $Folder -replace "ä", "ae"

              rename-item $Folder $NewFolder

       }

    krieg ich folgende Fehlermeldung:

    Rename-Item : Cannot rename because the target specified is not a path.

    +         rename-item <<<<  $Folder $NewFolder
        + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
        + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand

     

    Das Problem: In $Folder steht der alte Pfad (C:\Test\Neuä Ordner), in $NewFolder der neue Pfad mit geänderten Ordnernamen (C:\Test\Neuae Ordner).

    Anscheinend will er jedoch beim 2. Argument nur den neuen Namen (Neuae Ordner) und nicht den kompletten Pfad.

    Jemand einen Vorschlag, wie ich den Ordnernamen irgendwie vom Pfad splitten kann?

    Danke nochmals,

    Zuckerfry

     

    Donnerstag, 11. August 2011 07:43
  • split-path C:\test\ordner1 -leaf
    

    "-leaf" gibt dir nur den letzten Teil eines Pfadnamens zurück.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".


    Freitag, 12. August 2011 10:14
    Moderator