Powershell - Dateien umbenennen

HonniCilest

Erfahrenes Mitglied
Wo hast du das Trennzeichen denn alles geändert? Mit dem oben zur Verfügung gestelltem Beispiel müsstest du es an 3 Stellen ändern. Grundsätzlich kann aber ein Grund sein, dass '_' Benennungen von Variablen fortführt, '-' hingegen nicht. Das macht vermutlich in Zeile 11 Probleme, weil dann nach '$NewName_' gesucht wird, welche leer ist, und nicht nach '$NewName'. Du könntest dir das Trennzeichen als eigenes Attribut für bessere Anpassbarkeit ausgliedern.

Also so:
Code:
cls
$Path = 'C:\temp\Tutorials\PDF'
$Trennzeichen = '_'
$Files = gci $Path -Recurse -Include '*.pdf' | ?{$_.Name -notmatch "$NewName($Trennzeichen\d+)?\.pdf"} |%{
    $OldPath = $_.FullName
    $OldName = $_.Name
    $NewName = $_.Name.Substring(0,6)
    $Counter = (gci $Path -Recurse -Include '*.pdf' | ?{$_.Name -match "$NewName($Trennzeichen\d+)?\.pdf"}).count
    if($Counter -eq 0) {
        $NewName = "$NewName.pdf"
    }
    else {
        $NewName = ("$NewName$Trennzeichen{0:D1}.pdf" -f $Counter++)
    }
    ($NewName, $OldName -join ';') >> $Path\Dateien.csv
    rni -Path $OldPath -NewName $NewName
}
 

Neue Beiträge