Vor jedem Befehl
Arbeite zunächst in einem kopierten Testordner. Öffne dort PowerShell und prüfe mit Get-Location, dass Du wirklich im richtigen Ordner bist. Die Beispiele unten bearbeiten nur Dateien mit .jpg im aktuellen Ordner, keine Unterordner. -WhatIf zeigt geplante Aktionen, ohne die Umbenennung auszuführen. Es ersetzt keine Prüfung auf bereits existierende Zielnamen.
Präfix zu JPG-Dateien hinzufügen
Dieser Befehl zeigt zunächst nur die geplante Änderung:
Get-ChildItem -File -Filter '*.jpg' |
Rename-Item -NewName { 'Urlaub_' + $_.BaseName + $_.Extension } -WhatIf
Aus Bild1.jpg würde Urlaub_Bild1.jpg. Wenn die Ausgabe stimmt, führst Du denselben Befehl ohne -WhatIf aus. Starte ihn nicht zweimal: Beim zweiten Lauf würde aus Urlaub_Bild1.jpg der Name Urlaub_Urlaub_Bild1.jpg.
Vorher/Nachher als Liste anzeigen
Wenn Du die Zieldateinamen vor dem Rename-Item übersichtlich sehen möchtest:
Get-ChildItem -File -Filter '*.jpg' |
ForEach-Object {
[pscustomobject]@{
Alt = $_.Name
Neu = 'Urlaub_' + $_.BaseName + $_.Extension
}
}
Diese Ausgabe ändert nichts. Prüfe, ob die neuen Namen eindeutig und im Zielordner noch frei sind.
Dateien mit 001, 002, 003 nummerieren
$i = 1
Get-ChildItem -File -Filter '*.jpg' | Sort-Object Name | ForEach-Object {
$newName = 'Foto_{0:D3}{1}' -f $i, $_.Extension
Rename-Item -LiteralPath $_.FullName -NewName $newName -WhatIf
$i++
}
Sort-Object Name legt die Reihenfolge ausdrücklich fest. {0:D3} erzeugt mindestens drei Ziffern. -LiteralPath behandelt Sonderzeichen im ursprünglichen Pfad wörtlich. Für die tatsächliche Ausführung entfernst Du -WhatIf erst nach einer erfolgreichen Probe an Kopien.
Fehler und Grenzen
| Problem | Prüfe |
|---|---|
Zugriff verweigert |
Schreibrechte und geöffnete Dateien |
| Zielname existiert | Andere Dateien im Ordner und bereits geplante Namen |
| Falsche Reihenfolge | Sortierung vor ForEach-Object |
| Falsche Endung | Ob -Filter die gewünschten Dateien erfasst |
| Zweiter Lauf verändert erneut | Regel so gestalten, dass sie bereits bearbeitete Namen überspringt |
Rename-Item kann keine vorhandene Datei ersetzen und ist kein Werkzeug zum Verschieben in einen anderen Ordner. Die Parameter -LiteralPath und -WhatIf stehen in der Microsoft-Referenz. Die beiden Umbenennungsbefehle wurden mit einer Testdatei unter PowerShell und -WhatIf ausgeführt.
Wenn Du eine grafische Vorschau bevorzugst, nutze PowerRename. Eine Namensidee kannst Du auch im Simulator ohne Dateizugriff prüfen.