Automator und Digitale Bilder und Metadatamover

Lofgard

Lofgard

Aktives Mitglied
Thread Starter
Dabei seit
17.04.2005
Beiträge
1.256
Reaktionspunkte
87
Hallo wertes Forum,

ich importierte meine Bilder immer mit "Digitale Bilder" mit High Sierra und hatte da an Automator eine Aktion angehängt, die mir die Bilder nach Erstellungsdatum umbenannt und in Ordner sortiert hat, für jeden Tag wo es Aufnahmen gab wurde ein Ordner erstellt und die jeweiligen Bilder da reingepackt. Jetzt bin ich dabei, alte Zöpfe abzuschneiden und will die Bilder unter Monterey importieren, das Umbenennen nach Aufnahmedatum klappt noch aber das Erzeugen und Verschieben in einen jeweiligen Ordner will nicht mehr. Was noch funktioniert wird mit "Dateien & Ordner Bordmitteln" gemacht, das Verschieben mit Metadatamover. Beim ersten Ausführen gab es die Meldung "Metadatamover muss explizit freigegeben werden". Wie ich das freigeben soll unter Sicherheit (?) erschließt sich mir nicht, wenn ich Metadatamover erneut Installiere kommt die Meldung, dass es nicht von einem verifizierten Benutzer stammt. Da Automator das Aufnahmedatum ja fein ausliest bräuchte ich Metadatamover ja vielleicht gar nicht, es müsste nur das Datum vom Umbenenenn an einen Ordnerezeugungs und Sortierschritt weitergegeben werden. Aber wie man das macht weiss ich nicht. Wäre für Ratschläge dankbar. Bin auch soweit auf, dass ich Fotos probiert habe, aber RAW Dateien in Fotos ist unrealistisch.
Bildschirmfoto 2023-06-17 um 18.50.23.png
 
Also was ich möchte ist: Das was im Kästchen ist, soll benutzt werden um einen Ordner zu erzeugen, falls es den noch nicht gibt, und das Bild soll da reingeschoben werden.
Bildschirmfoto 2023-06-17 um 18.50.23 d Kopie.png
 
Also mdls könnte die Lösung sein:
Code:
Claudia:~ jottzeh$ mdls -name kMDItemContentCreationDate /Users/jottzeh/Pictures/Eingang/2023-06-15/2023-06-15-00007_DSC6815.NEF
kMDItemContentCreationDate = 2023-06-15 10:10:16 +0000
Jetzt muss ich vielleicht nur noch den relevanten Output in eine Variable einlesen oder so.
 
Viola!
Code:
#!/bin/sh
Bilderordner=/Users/jottzeh/Pictures/Eingang # Der Ordner wo sortiert werden soll
Dateien=(JPG jpg NEF RAW) # Dateien, die sortiert werden sollen
 for Typ in ${Dateien[*]}
  do
  echo ${Typ}
  for Datei in ${Bilderordner}/*.${Typ} #alle Dateien im Ordner abfragen
  do
  echo ${Datei}
  Prefix=$(mdls -name kMDItemContentCreationDate ${Datei} | cut -c30-39) # erstellungsdatum von datei abfragen
  echo ${Prefix}
  test -d ${Bilderordner}/${Prefix} || mkdir ${Bilderordner}/${Prefix}   # Ordner erzeugen, wenn es den noch nicht gibt
  mv ${Datei} ${Bilderordner}/${Prefix}/${Prefix}-JC-$(basename ${Datei}) # Datei umbenennen und verschieben
 done
done
 
Ich denke, dass deine Frage im falschen Forum steht. Sie dürfte in „Scripting und Automatisierung“ besser aufgehoben sein.

Ich verstehe von der Materie zu wenig, vermute aber mal, dass das Problem am MetaDataMover liegen dürfte. Der Code wurde zuletzt vor 12 Jahren geändert (siehe hier: https://github.com/Mortimerp9/MetaDataMover). Die verlinkte Website existiert nicht mehr. Das entwickelt keiner mehr weiter, wie es scheint.
 
Ja, jetzt wo es eine Lösung gibt, steht es fast im falschen Forum, aber! Die Dateien werden mit dem Skript wie gewünscht sortiert, jetzt würde ich das Bashskript aber gerne direkt mit dem Importieren Vorgang aus Digitale Bilder verknüpfen, damit ich nur einmal in Digitale Bilder auf Importieren drücken muss. Aber da hakt es jetzt wieder bei mir, von daher ist es immer noch eine Automator Frage.
Immerhin konnte ich mit Automator ein Klickibuntiprogramm aus dem Bashskript machen, jetzt nerven nur noch die Fehler für die Dateitypen, die grundsätzlich auch sortiert werden sollen aber im aktuellen Sortiervorgang nicht vorhanden sind.

Code:
Claudia:~ jottzeh$ ./Documents/Dateiensortieren.sh
mkdir: /Users/jottzeh/Pictures/Eingang/ng: No such file or directory
mv: -JC-*.jpg is not a directory
mkdir: /Users/jottzeh/Pictures/Eingang/ng: No such file or directory
mv: -JC-*.RAW is not a directory
Claudia:~ jottzeh$

Ist vielleicht auch nur Beinarbeit, erst abfragen, welche der relevanten Dateitypen gerade vorhanden sind und nur die sortieren, hm.
 
Werde ich mir mal anschauen, finde Exif und Scripting ja ganz spannend. Hab hier aber jetzt mein Lösung gefunden und die überflüssigen Fehlermeldungen sind auch weg.
Code:
#!/bin/sh
Bilderordner=/Users/jottzeh/Pictures/Eingang # Der Ordner wo sortiert werden soll
Dateien=(JPG jpg NEF RAW) # Dateitypen, die sortiert werden sollen

for Typ in ${Dateien[*]}
do
 count=`ls -1 ${Bilderordner}/*.${Typ} 2>/dev/null | wc -l` # Schauen ob Dateien des jeweiligen Typs überhaupt vorrätig sind
  if [ $count != 0 ] # Arbeiten gehen wenn die Dateien des Typs da sind
  then
   for Datei in ${Bilderordner}/*.${Typ} #alle Dateien eines der Dateitypen im Ordner abfragen
   do
   Prefix=$(mdls -name kMDItemContentCreationDate ${Datei} | cut -c30-39) # Erstellungsdatum von Datei abfragen
   test -d ${Bilderordner}/${Prefix} || mkdir ${Bilderordner}/${Prefix}   # Ordner erzeugen, wenn es den noch nicht gibt
   mv ${Datei} ${Bilderordner}/${Prefix}/${Prefix}-JC-$(basename ${Datei}) # Datei umbenennen und verschieben
   done
  fi
done
 
Zurück
Oben Unten