Löschen von RAWs ohne zugehöriges JPG

Viele Fotografen speichern Ihre Bilder als RAW und JPG Dateien gleichzeitig. Das ist natürlich sehr praktisch, da man auf diesem Weg direkt beide Formate zur Verfügung hat und sich entscheiden kann welche man nutzt. In meinem Workflow hat sich dann aber immer folgendes Problem ergeben:

Ich schaue mir die JPG Version der Bilder an und lösche diejenigen, die nichts geworden sind, oder mir nicht gefallen. Wie werde ich jetzt auf schnelle Art und Weise diejenigen RAW-Dateien los, deren JPG ich bereits gelöscht habe?

Dazu habe ich ein kurzes Powershell-Script geschrieben, was genau das erledigt. Meine Kamera erstellt RAW-Dateien im .cr2 Format. Ich durchlaufe also alle .cr2 Dateien im aktuellen Ordner und teste ob es eine zugehörige JPG Datei gibt. Gibt es diese nicht, wird die RAW-Datei gelöscht.

foreach ($raw in (Get-Item *.cr2))
{# Durchlaufen aller .cr2 Dateien

    if (!(Test-Path "$(($raw.Name).split(".")[0]).jpg"))
    {<# 
        Wenn kein passendes .jpg zum aktuellen Raw vorhanden ist, lösche das Raw
        Hier wird er Dateiname der RAW (z.B. img01.cr2) am . gesplittet und stattdessen ein .jpg angehängt
     #>

        Remove-Item $raw

    }

}

Am schnellsten kannst du das Script nutzen indem du im Datei-Explorer den Ordner öffnest in dem sich die Bilder befinden. Tippe anschließend oben „powershell.exe“ im Datei-Pfad ein. Es öffnet sich ein Powershell-Fenster genau in diesem Ordner. Kopierst du nun das Script in das Fenster und drückst die Enter-Taste, werden die .cr2 Dateien ohne zugehörige JPG Datei gelöscht.

2 Kommentare bei „Löschen von RAWs ohne zugehöriges JPG“

  1. Hallo Lukas,

    nettes Skript.
    Hab jetzt ne Weile gesucht und nichts brauchbares gefunden.
    Bin leider absoluter Neuling in Sachen Skripts.
    Ich fotografiere in JPG & RAW. Nach nem Shooting erstelle ich mir einen Hauptordner und 2 Unterordner („jpg“ und „raw“).
    Kann man dein Skript auch so umschreiben, dass ich es im Hauptordner starte und er beide Unterordner scannt und dann im raw Ordner dementsprechend die Files löscht, die im anderen Unterordner als jpg nicht mehr zu finden sind?
    Das wäre was.
    Vielleicht kannst das Skript ja noch ergänzen und hier einfügen.
    Wäre dir sehr dankbar.

    Viele Grüße
    Danny

    1. Hallo Danny,
      bitte entschuldige die viel zu späte Antwort. Deine Nachricht ist mir leider untergegangen.
      Über folgendes Script sollte das machbar sein.
      Viele Grüße
      Lukas

      foreach ($raw in (Get-Item .\raw\*.cr2))
      {# Durchlaufen aller .cr2 Dateien

      if (!(Test-Path „.\jpg\$(($raw.Name).split(„.“)[0]).jpg“))
      {<# Wenn kein passendes .jpg zum aktuellen Raw vorhanden ist, lösche das Raw Hier wird er Dateiname der RAW (z.B. img01.cr2) am . gesplittet und stattdessen ein .jpg angehängt #>

      Remove-Item $raw

      }

      }

Schreibe einen Kommentar