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:
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
}