[GastForen Programmierung/Entwicklung AppleScript AS-Funktion arbeitet nicht wenn Pfadangabe mit Leerzeichen übergeben wird.

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

AS-Funktion arbeitet nicht wenn Pfadangabe mit Leerzeichen übergeben wird.

Skontomobil
Beiträge gesamt: 2

29. Mär 2019, 23:36
Beitrag # 1 von 4
Bewertung:
(70850 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebes Forum,
ich bin AppleScipt-Neuling und suche & lese seit einigen Tagen hier im Forum mit.
Nach einigen schnellen Erfolgen, hakt es jetzt leider ein wenig.

Ich möchte die Exif-Informationen aller JPG eines Verzeichnisses auslesen (und diese Bilder später als HTML-Seite mit den EXIFs verknüpfen)

Ich bin auf der Seite des exiftools auf ein AppleScript (get_tags) gestossen das ich nach einigem Basteln zum Laufen bekommen habe.
Ich scheitere jedoch daran, wenn im Verzeichnis eine Bilddatei ist, die ein Leerzeichen im Namen trägt. zB. "Eins Zwei.JPG"

Das Script unterbricht dann zur Laufzeit mit "2" Fehlermeldungen
error "Error : File not Found .../Eins Error : File not Found Zwei.JPG"

Hat jemand hier im Forum eine gute Idee ?
Oder kann mir erklären wo mein Gedankenfehler liegt ?

Im voraus schon einmal vielen Dank

Viele Grüße
Skontomobil




Code
# Wähle Verzeichnis 
# ermittle Dateien im Verzeichnis
# lese zu allen JPG die EXIF-Informationen (Funktion get_tags)

# PROBLEM - Script kann nicht mit Leerzeichen im Filename umgehen

# nächste Schritte :
# erstelle eine HTML-DAtei mit den JPG und den EXIF-Informationen
# (Aufsteigend nach CreationDate im EXIF, nicht nach File-Datum)


on get_tags(a_File, a_list)
local the_file, the_cmd, a_tag_name, the_MD, oldTID, the_MDlist, the_MDlist2, an_Item, the_MDrecordList, the_MDrecord, a_TagRec

set the_file to POSIX path of a_File
set the_cmd to "/usr/local/bin/exiftool -s2 -n "

repeat with a_tag_name in a_list
set the_cmd to the_cmd & " -" & a_tag_name
end repeat
set the_cmd to the_cmd & " " & the_file

set the_MD to do shell script the_cmd
log "the_MD nach EXIF-Lauf : " & return & the_MD

--Get each line of exiftool output as an element in list the_MDlist
set oldTID to AppleScript's text item delimiters

set AppleScript's text item delimiters to return
set the_MDlist to every text item of the_MD --get list of lines of output

--Build the_MDlist2: a list of sublists, each sublist of the form {"TagName", "TagValue"}
set AppleScript's text item delimiters to ": " --should be only 1 occurrence of this per line
set the_MDlist2 to {}
repeat with an_Item in the_MDlist
set end of the_MDlist2 to {text item 1 of an_Item, text item 2 of an_Item}
end repeat
set AppleScript's text item delimiters to oldTID --restore the default text item delimiters

--Transform into the_MDrecordList: a list of records, each a tag name/value pair
set the_MDrecordList to {}
repeat with an_Item in the_MDlist2
set end of the_MDrecordList to {item 1 of an_Item, item 2 of an_Item}
end repeat

set the_MDrecord to {}
set the_MDrecord to the_MDrecordList

return the_MDrecord

end get_tags

tell application "Finder"
#set Arbeitsverzeichnis to (choose folder with prompt "Bitte Verzeichnis wählen das eingelesen werden soll")
set Arbeitsverzeichnis to choose folder
set allFiles to (every file of (Arbeitsverzeichnis))
end tell

repeat with i from 1 to count items of allFiles
set SingleFile to (item i of allFiles) as alias
set ParameterListe to {"'CreateDate'", "'ImageDescription'", "GPSLatitude", "GPSLongitude", "Model", "Make", "FocalLength", "ExposureTime", "FNumber", "ISO"}
set my_Tags to get_tags(SingleFile, ParameterListe)
end repeat



PS:
Eine Zusatzfrage hab ich direkt noch ...
Kann mir jemand erklären, warum das Script mit

error "„Finder“ hat einen Fehler erhalten: Fortfahren nicht
möglich: get_tags." number -1708

abbricht, wenn ich das "end tell" hinter "end repeat" setze ?
X

AS-Funktion arbeitet nicht wenn Pfadangabe mit Leerzeichen übergeben wird.

Hans Haesler
  
Beiträge gesamt: 5766

30. Mär 2019, 08:15
Beitrag # 2 von 4
Beitrag ID: #569543
Bewertung:
(70830 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skontomobil,

herzlich willkommen im AppleScript-Forum auf HDS! :-)

Die Fehlermeldung kann ich bestätigen. Damit sie nicht mehr ausgelöst wird, musst Du in dieser Zeile ...

Code
set the_file to POSIX path of a_File 

... die Ergänzung quoted form of einfügen:

Code
set the_file to quoted form of POSIX path of a_File 


*****
Zur Zusatzfrage: Wenn sich der Aufruf eines Handlers in einem tell-Block befindet, muss zwingend das Wörtchen my vorangestellt werden:

Code
set my_Tags to my get_tags(SingleFile, ParameterListe) 

Und so haben wir ein schönes Beispiel, wie verwirrend die Unsitte ist, den Variablen-Namen die Vorsilbe "my" zu verpassen ...

Abgesehen davon: Dem "Finder" sollte ein Minimum an Arbeit aufgebürdet werden. Also diese Repeat-Schleife ausserhalb des tell-Blocks belassen.

Gruss, Hans


als Antwort auf: [#569541]

AS-Funktion arbeitet nicht wenn Pfadangabe mit Leerzeichen übergeben wird.

Skontomobil
Beiträge gesamt: 2

30. Mär 2019, 09:05
Beitrag # 3 von 4
Beitrag ID: #569544
Bewertung:
(70822 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das ist ja senstionell :-)
ich war mir sicher dass jemand hier im Forum einen Tip für mich hat. Aber das mein Problem so schnell gelöst wird ist genial!

Vielen Dank dafür !

Hättest Du noch ein Empfehlung für mich, welche
Literatur (od. andere Quellen) zu AppleScript man als Einsteiger "konsumieren" sollte ?

Viele Grüße & ein schönes Wochenende
Skontomobil


als Antwort auf: [#569543]

AS-Funktion arbeitet nicht wenn Pfadangabe mit Leerzeichen übergeben wird.

Hans Haesler
  
Beiträge gesamt: 5766

30. Mär 2019, 09:20
Beitrag # 4 von 4
Beitrag ID: #569545
Bewertung:
(70816 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skontomobil,

bitte sehr.

Als Einstiegs-Lektüre wird "AppleScript Für Absolute Starter" (von Bert Altenburg) empfohlen.
Zu finden hier: http://www.fischer-bayern.de/...ript/html/ebook.html

Gruss, Hans


als Antwort auf: [#569544]
X

Aktuell

Affinity
glyphen-browser_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
07.02.2020 - 11.09.2020

Digicomp Academy AG, 8005 Zürich
Freitag, 07. Feb. 2020, 13.00 Uhr - Freitag, 11. Sept. 2020, 12.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte. Mit dem Abschluss «Publisher Professional – Profil «Multimedia» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Veranstaltungen
22.02.2020 - 04.07.2020

Lehrgang zielgerichtet auf die Zertifizierung zum Publisher Basic

Schulungsraum PubliCollege, Kronenhalde 9d, 3400 Burgdorf
Samstag, 22. Feb. 2020, 13.14 Uhr - Samstag, 04. Juli 2020, 13.15 Uhr

Projektseminar/Lehrgang

Ziele In der Medienproduktion unter Einbezug der aktuellen Publishing-Programme mitarbeiten. Voraussetzungen Sie möchten gestalterisch tätig sein und eigene grafische Ideen kompetent entwickeln sowie umsetzen; Medienproduktionen professionell planen und ausführen. Kompetenzen Nach Abschluss dieses Lehrgangs können Sie Printpublikationen aller Art von der Gestaltung über die Umsetzung bis zu druckfertige PDFs erstellen. Sie sind fähig, CI/CD-Vorgaben umzusetzen. Sie lernen die Grundlagen der grafischen Gestaltung kennen und setzen diese mit Adobe Photoshop, InDesign und Illustrator effizient um.

15 Halbtage, jeweils am Samstag von 08.30 bis 14 Uhr im Kursraum des PubliCollege, 3400 Burgdorf


Daten
Samstag, 22.2., 29.2., 14.3., 21.3., 28.3., 4.4., 25.4., 2.5., 9.5., 16.5., 6.6., 13.6., 20.6., 27.6., 4.7. 2020
Reservedatum am 23.5. 2020

Ja

Organisator: PubliCollege GmbH, 3400 Burgdorf

Kontaktinformation: Beat Kipfer, E-Mailinfo AT publicollege DOT ch

https://www.publicollege.ch/kursangebote/20-publisher-basic