betreutesarbeiten
Goto Top

Dateinamen von Fotos umbenennen (aus Datum wird fortlaufender Tag)

Hallo,

ich benötige bitte die Schwarmintelligenz, denn ich möchte Dateien automatisiert umbenennen lassen (hab aber null Plan von Powershell)...

- es gibt ein Startdatum, dies soll Tag 1 sein
- Fotos wurden/werden gemacht
- der Dateiname soll den fortlaufenden Tag beinhalten

Beispiel: Startdatum 01.12.2024 = Tag 1 = mit Nullen aufgefüllt wird daraus 0001
Foto vom 15.12.2024 = Tag 15 = 0015
Foto am 19.01.2025 = Tag 50 = 0050

Sodass aus einem Dateinamen "YYYYMMDD-hhmm.jpg" ein "0050.jpg" wird. Gibt es dafür ein Tool? Wie geht das mit Powershell?

Content-ID: 669811

Url: https://administrator.de/contentid/669811

Ausgedruckt am: 27.11.2024 um 17:11 Uhr

clubfreund
clubfreund 27.11.2024 aktualisiert um 16:22:23 Uhr
Goto Top
Tool: XnView (Classic)
Bildchen markieren > nach (EXIF)-Datum sortieren > Bearbeiten > Umbenennen ...
TK1987
TK1987 27.11.2024 aktualisiert um 16:47:01 Uhr
Goto Top
Moin,

$start = "2024-12-01"  
$path = "D:\Fotos"  

foreach ($img in Get-ChildItem "$path\*.jpg" | ? LastWriteTime -ge $start) {  
  $days = (New-TimeSpan -start $start -end $img.LastWriteTime).Days + 1
  Rename-Item -Path $img -NewName ('{0:d4}.jpg' -f $days)  
}

Gibt es denn wirklich immer nur 1 Foto/Tag?

Gruß Thomas
cse
cse 27.11.2024 aktualisiert um 17:14:01 Uhr
Goto Top
Irvan view ist bei sowas auch ein netter Helfer, aber ob das auch kann. hmmm.

ansonsten trau dich ruhig mal Copilot oder Chatgpt.


Gesendet von Copilot:
Das klingt nach einem interessanten Projekt! Du kannst das mit PowerShell automatisieren. Hier ist ein Beispielskript, das dir helfen könnte:

# Startdatum festlegen
$startDate = Get-Date "2024-12-01"  

# Verzeichnis mit den Fotos
$photoDirectory = "C:\Pfad\zu\deinen\Fotos"  

# Alle JPG-Dateien im Verzeichnis durchgehen
Get-ChildItem -Path $photoDirectory -Filter "*.jpg" | ForEach-Object {  
    # Ursprüngliches Datum aus dem Dateinamen extrahieren
    if ($_ -match "\d{8}-\d{4}") {  
        $dateString = $_.Name.Substring(0, 8)
        $photoDate = [datetime]::ParseExact($dateString, "yyyyMMdd", $null)  
        
        # Anzahl der Tage seit dem Startdatum berechnen
        $dayNumber = ($photoDate - $startDate).Days + 1
        
        # Neuen Dateinamen erstellen
        $newFileName = "{0:D4}.jpg" -f $dayNumber  
        
        # Datei umbenennen
        Rename-Item -Path $_.FullName -NewName $newFileName
    }
}

Erklärung:
Startdatum festlegen: Das Skript beginnt mit der Festlegung des Startdatums.
Verzeichnis mit den Fotos: Hier gibst du den Pfad zu deinem Fotoverzeichnis an.
Dateien durchgehen: Das Skript durchsucht alle JPG-Dateien im angegebenen Verzeichnis.
Datum extrahieren: Es extrahiert das Datum aus dem Dateinamen.
Tage berechnen: Es berechnet die Anzahl der Tage seit dem Startdatum.
Neuen Dateinamen erstellen: Der neue Dateiname wird im gewünschten Format erstellt.
Datei umbenennen: Schließlich wird die Datei umbenannt.
Falls du ein Tool bevorzugst, gibt es auch Programme wie “Bulk Rename Utility” oder “Advanced Renamer”, die solche Aufgaben übernehmen können.

Wenn du noch Fragen hast oder Hilfe bei der Anpassung des Skripts benötigst, lass es mich wissen! 😊


ich habe einfach deinen Text genommen und gefragt. nur probiert hab ich es nicht ;)
Xerebus
Xerebus 27.11.2024 um 18:36:08 Uhr
Goto Top
Und wenn es da mehrere fotos gibt?