Ein Kunde suchte eine schnelle Lösung um 100e Ordner mit Bildern unter Windows umzubenennen.
Die Ordner waren bereits richtig benannt „Urlaub 2015 – Schweden“ und die enthaltenen Bilder hatten den Namen der Kamera „DSC20150620_001.jpg“ usw…
Wir haben ein kurzes Script für die Powershell erstellt mit welchem er das in Sekunden erledigt hat.
Mit einem Texteditor (Notepad) eine Datei anlegen zB.: „rename_images.ps1“ und folgenden Code reinkopieren und anpassen.
Skript ausführen in der Powershell: Navigiere mit cd zu dem Ort, an dem du die Datei gespeichert hast (z. B. cd Desktop).
Starte das Skript mit: .\rename_images.ps1
Hinweis: Falls eine Fehlermeldung zur „Execution Policy“ erscheint, gib einmalig folgenden Befehl ein: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser und bestätige mit „J“.
# --- Konfiguration ---
# Setze hier den Pfad zum Hauptordner ein, in dem deine Unterordner liegen
$parentFolder = "d:\Bilder\2015"
# Liste der Bildendungen, die berücksichtigt werden sollen
$extensions = @(".jpg", ".jpeg", ".png", ".gif", ".bmp")
# --- Skript-Logik ---
# Alle Unterordner im Hauptordner abrufen
$subfolders = Get-ChildItem -Path $parentFolder -Directory
foreach ($folder in $subfolders) {
Write-Host "Verarbeite Ordner: $($folder.Name)" -ForegroundColor Cyan
# Alle Bilddateien im aktuellen Unterordner finden
$files = Get-ChildItem -Path $folder.FullName -File | Where-Object { $extensions -contains $_.Extension.ToLower() }
$counter = 1
foreach ($file in $files) {
# Neuer Name: Ordnername + Bindestrich + 3-stellige Nummer + Endung
$newName = "{0}-{1:D3}{2}" -f $folder.Name, $counter, $file.Extension
$destinationPath = Join-Path -ChildPath $newName -Path $folder.FullName
# Umbenennung durchführen
Rename-Item -Path $file.FullName -NewName $newName
$counter++
}
}
Write-Host "Fertig! Alle Bilder wurden umbenannt." -ForegroundColor Green
Benutzung auf eigene Gefahr und immer zuvor ein Backup machen!