Grundsätzlich sollte sich das Vorhaben über ein Droplet realisieren lassen. Werden Datei auf das Droplet gezogen, so können die vollständigen Dateinamen (m.E.) direkt an exiftool übergeben werden. Im Fall von Ordnern wird das Programm umfangreicher, da die Ordner wiederum Unterordner enthalten können, die dann rekursive zu prozessieren wären. Der Programmumfang für die Dateivariante wäre m.E. sehr "übersichtlich" und ließe sich gut von Standardbeispielen ableiten.
Ergebnis 1 bis 10 von 10
- 16.09.2010, 19:09 #1Bismarckapfel
Themenstarter
- Registriert
- 11.2007
- Ort
- Am Rande der Region Stuttgart
- Alter
- 25
- Beiträge
- 143
Shell-Befehl durch Droplet ausführen
Hallo Leute,
ich habe öfters mal Bilddateien bei denen ich die Exif-Daten ändern muss. Das ganze mache ich bisher übers Terminal mit diesen Befehlen:
Damit werden die Exif-Einträge für alle CR2- und JPG-Dateien in dem Ordner nach meinen Wünschen geändert.Code:cd Der_Pfad_zum_Ordner_mit_den_Bildern exiftool -FocalLength='58' -FNumber='1.2' -ApertureValue='1.2' -MaxApertureValue='1.2' -Lens='Minolta MC Rokkor-PG 58mm f/1.2' -LensInfo='58mm f/1.2' -LensID='0' *.CR2 *.jpg
Nun dachte ich mir, dass man das mit einem Droplet vielleicht vereinfachen könnte und ich somit nicht immer das Terminal starten und den Befehl für exiftool raussuchen müsste. Leider hab ich keine Ahnung von AppleScript oder sonstigen Script-Sprachen und brauche dazu eure Hilfe.
Ich möchte also, dass beim Ablegen einer/mehrerer Dateien oder eines ganzen Ordners auf das Droplet das Script in den enstprechenden Ordner springt, den oben genannten exiftool-Befehl ausführt und die Rückmeldung von exiftool anzeigt. Die Rückmeldung sieht im Terminal ganz einfach aus, falls das eine Rolle spielt (in dem Ordner war eine JPG-Datei und keine CR2-Datei, deshalb der Error):
Mit dem AppleScript-Editor bin ich zumindest soweit gekommen, dass beim Doppelklicken des "Programms" der Befehl im Desktop-Ordner ausgeführt wird. Aber das ist blöd, da ich dafür erst mal alle Dateien auf den Desktop ziehen muss, außerdem ists kein Droplet.Code:Error: File not found - *.CR2 1 image files updated 1 files weren't updated due to errors
Ich hoffe ihr könnt mir helfen.
Gruß
FensteriMac 7,1 MB322LL/A( 24” ⁄ 2,8 GHz ⁄ 4 GB RAM ⁄ 500 GB HDD )+ 6 TB
- 16.09.2010, 20:33 #2Wohlschmecker aus Vierlanden
- Registriert
- 11.2009
- Beiträge
- 236
Kommunikation -> Kooperation -> Innovation
- 16.09.2010, 22:23 #3Gala
- Registriert
- 09.2010
- Ort
- Herzogenrath
- Alter
- 44
- Beiträge
- 50
Hallo Fenster,
schau mal ob's funktioniert ...
• Die vom Exiftool erstellten Sicherungsdateien werden nicht gelöscht
• Es findet keine Vorab-Überprüfung der Datei statt (Jpg, ...)
• Ordner und Dateien werden abgearbeitet
Im ScriptEditor öffnen und als Programm sichern ...
Gruß
Hans
Code:on open these_items repeat with i from 1 to the count of these_items set this_item to (item i of these_items) set the item_info to info for this_item if folder of the item_info is true then process_folder(this_item) else process_item(this_item) end if end repeat end open on process_folder(this_folder) set these_items to list folder this_folder without invisibles repeat with i from 1 to the count of these_items set this_item to alias ((this_folder as text) & (item i of these_items)) set the item_info to info for this_item if folder of the item_info is true then process_folder(this_item) else process_item(this_item) end if end repeat end process_folder on process_item(this_item) do shell script "exiftool -FocalLength='58' -FNumber='1.2' -ApertureValue='1.2' -MaxApertureValue='1.2' -Lens='Minolta MC Rokkor-PG 58mm f/1.2' -LensInfo='58mm f/1.2' -LensID='0' " & " " & quoted form of POSIX path of this_item end process_item
- 16.09.2010, 23:29 #4Bismarckapfel
Themenstarter
- Registriert
- 11.2007
- Ort
- Am Rande der Region Stuttgart
- Alter
- 25
- Beiträge
- 143
Hallo Hans,
das funktioniert einwandfrei! Habs alle möglichen Szenarien getestet, auch mit Unterordner im Unterordner vom Hauptordner
Vielen, vielen Dank!
Gruß
FensteriMac 7,1 MB322LL/A( 24” ⁄ 2,8 GHz ⁄ 4 GB RAM ⁄ 500 GB HDD )+ 6 TB
- 17.09.2010, 10:05 #5Gala
- Registriert
- 09.2010
- Ort
- Herzogenrath
- Alter
- 44
- Beiträge
- 50
Hallo Fenster,
schön
Bitte ersetzte noch den letzten Handler im Script:
... damit die Bearbeitung bei Fehlern nicht stoppt, sondern die betreffende Datei in einem "ExifError.log" (Desktop) protokolliert wird.Code:on process_item(this_item) try do shell script "exiftool -FocalLength='58' -FNumber='1.2' -ApertureValue='1.2' -MaxApertureValue='1.2' -Lens='Minolta MC Rokkor-PG 58mm f/1.2' -LensInfo='58mm f/1.2' -LensID='0' " & " " & quoted form of POSIX path of this_item on error set LogDatei to quoted form of POSIX path of (path to desktop as text) & "ExifError.log" do shell script "echo " & quoted form of (this_item as text) & " >> " & LogDatei end try end process_item
Gruß
Hans
- 18.09.2010, 17:19 #6Bismarckapfel
Themenstarter
- Registriert
- 11.2007
- Ort
- Am Rande der Region Stuttgart
- Alter
- 25
- Beiträge
- 143
Super. Ist es auch möglich vor der Verarbeitung der Daten mit einem kleinen Pop Up nach dem Blendenwert gefragt zu werden (in welchem ich dann z.B. "5.6" eingebe), der dann bei -FNumber='1.2' und -ApertureValue='1.2' anstelle der 1.2 verwendet wird?
iMac 7,1 MB322LL/A( 24” ⁄ 2,8 GHz ⁄ 4 GB RAM ⁄ 500 GB HDD )+ 6 TB
- 18.09.2010, 20:25 #7Gala
- Registriert
- 09.2010
- Ort
- Herzogenrath
- Alter
- 44
- Beiträge
- 50
Hi,
zwei Fragen:
1.) Sollen die Angaben gespeichert und nur bei Bedarf per Dialog geändert werden?
2.) Sollen eventuell auch direkt Angaben zum Fotografen, oder für Bildserien z.B. Bildbeschreibung, Stichwörter ... abgefragt / eingefügt werden ?
Schönen Abend
Hans
- 18.09.2010, 20:29 #8Bismarckapfel
Themenstarter
- Registriert
- 11.2007
- Ort
- Am Rande der Region Stuttgart
- Alter
- 25
- Beiträge
- 143
Weder noch, eine einfache Abfrage des Blendenwerts bei jedem Start geüngt
iMac 7,1 MB322LL/A( 24” ⁄ 2,8 GHz ⁄ 4 GB RAM ⁄ 500 GB HDD )+ 6 TB
- 19.09.2010, 13:22 #9Gala
- Registriert
- 09.2010
- Ort
- Herzogenrath
- Alter
- 44
- Beiträge
- 50
Hi Fenster,
dann ist der Code eine Zeile länger
cuCode:on open these_items repeat with i from 1 to the count of these_items set this_item to (item i of these_items) set the item_info to info for this_item if folder of the item_info is true then process_folder(this_item) else process_item(this_item) end if end repeat end open on process_folder(this_folder) set these_items to list folder this_folder without invisibles repeat with i from 1 to the count of these_items set this_item to alias ((this_folder as text) & (item i of these_items)) set the item_info to info for this_item if folder of the item_info is true then process_folder(this_item) else process_item(this_item) end if end repeat end process_folder on process_item(this_item) set Blendenwert to text returned of (display dialog "Bitte Blendenwert eingeben: (Separation mit Punkt)" default answer "1.2") try do shell script "exiftool -FocalLength='58' -FNumber=" & quoted form of Blendenwert & " -ApertureValue=" & quoted form of Blendenwert & " -MaxApertureValue='1.2' -Lens='Minolta MC Rokkor-PG 58mm f/1.2' -LensInfo='58mm f/1.2' -LensID='0' " & " " & quoted form of POSIX path of this_item on error set LogDatei to quoted form of POSIX path of (path to desktop as text) & "ExifError.log" do shell script "echo " & quoted form of (this_item as text) & " >> " & LogDatei end try end process_item
Hans
- 19.09.2010, 14:11 #10Bismarckapfel
Themenstarter
- Registriert
- 11.2007
- Ort
- Am Rande der Region Stuttgart
- Alter
- 25
- Beiträge
- 143
Danke für deine Mühe Hans!
iMac 7,1 MB322LL/A( 24” ⁄ 2,8 GHz ⁄ 4 GB RAM ⁄ 500 GB HDD )+ 6 TB


Zitieren
