• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Script zur Dateierkennung funktioniert nicht

prom0e

Golden Delicious
Registriert
17.12.13
Beiträge
6
Hey,
das Ziel des Scripts ist es, durch das Ziehen einer Datei auf das Script (Droplet) soll erkannt werden von welchem typ die entsprechende Datei ist und dann je nach Dateityp im richtigen Programm geöffnet werden. Z.B. wenn man eine .pdf-Datei auf das Droplet zieht soll es im Adobe Acrobat geöffnet werden. Oder eine .psd-Datei in Photoshop. Mit möglichen Erweiterungen wie z.B. Größe ändern bei .psd-Dateien etc.
Nur leider funktioniert die Dateierkennung nicht so richtig.
Hilfe ist sehr Willkommen!
Hier mein Script:

//
on open xFile
set openFile to the info in xFile
set AppleScript's text item delimiters to "."
if name of openFile contains "." then
set {nameExt} to {text item -1} of openFile
display dialog nameExt
else
display dialog "Das Dateiformat kann nicht erkannt werden." buttons "Ok" default button "Ok"
end if
set AppleScript's text item delimiters to ""
if nameExt contains "psd" then
tell application "Adobe Photoshop CS6"
activate
open file xFile
end tell
else if nameExt contains "qxd" then
tell application "QuarkXPress"
activate
open file xFile
end tell
else if nameExt contains "indd" then
tell application "Adobe InDesign CS6"
activate
open file xFile
end tell
else if nameExt contains "ai" then
tell application "Adobe Illustrator"
activate
open file xFile
end tell
else if nameExt contains "pdf" then
tell application "Adobe Acrobat Pro"
activate
open file xFile
end tell
end if
end open

// (Ich weiß nicht warum die Syntax verloren gegangen ist, aber ich kann auch nicht den Tabulator benutzen..)

Gruß und Danke im voraus.
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.508
Gibt es einen speziellen Grund, über Droplet und Script zu machen, was ein simpler Doppelklick ebenso macht?
Was genau funktioniert denn nicht? Die richtige Zuordnung? Das Starten der Programme? Gibt es irgendeine Fehlermeldung, direkt oder eventuell in der Konsole?
 

prom0e

Golden Delicious
Registriert
17.12.13
Beiträge
6
Gibt es einen speziellen Grund, über Droplet und Script zu machen, was ein simpler Doppelklick ebenso macht?
Was genau funktioniert denn nicht? Die richtige Zuordnung? Das Starten der Programme? Gibt es irgendeine Fehlermeldung, direkt oder eventuell in der Konsole?

Wie ich bereits geschrieben habe soll das ganze noch erweitert werden. Dh es soll nicht bloß nur ein simpler doppel-klick in Applescript umgeschrieben werden. Es soll erweiterbar sein, sodass man zb noch die Bildgröße jedes .pdf ändert oder die Qualität hoch setzt oder ähnliches.

Fehlermeldung "info of (bla) kann nicht gelesen werden.". Dh wie ich auch bereits geschrieben habe, erkennt er nicht das Dateiformat der auf das Droplet gezogenen Datei.
Bei der Kompilierung gibt es keine Fehler und da es ein Droplet ist kann ich es auch nicht in Applescript selber starten.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Eine Dateiendung bekommt man so:

tell application "Finder" to get name extension of xFile
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,
ja ... eigentlich sind Dateiendungen eine Finder-Angelegenheit ... aber man braucht ihn nicht unbedingt:

on open xFile
display dialog (name extension of (info for xFile))
end open

Gruß
 

prom0e

Golden Delicious
Registriert
17.12.13
Beiträge
6
Eine Dateiendung bekommt man so:

tell application "Finder" to get name extension of xFile

und wie kann ich das dann in einer Variable speichern um zu überprüfen welches Programm dann geöffnet werden muss?
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Einer Variable weist du einen Wert zu mit set.

tell app "Finder" to set variable to "value"
 

prom0e

Golden Delicious
Registriert
17.12.13
Beiträge
6
Einer Variable weist du einen Wert zu mit set.

tell app "Finder" to set variable to "value"

also:
tell app "Finder" to set nameExt to get name extension of xFile

Funktioniert trotzdem nicht. Fehler: "<<class nmxt>> of {alias "Dateipfad"}" kann nicht gelesen werden.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,

so wird das ein langer Marsch :-D

Den on open Handler gestaltet man i.d.R. so , dass mehrere Objekte nacheinander abgearbeitet werden können:

Code:
on open theFiles
repeat with xFile in theFiles
tell app "Finder" to set nameExt to name extension of xFile
--oder ohne Finder:
--set nameExt to (name extension of (info for xFile))
if nameExt is "psd" then
tell application "Adobe Photoshop CS6"
activate
open file (xFile as string)
end tell
--usw
end if
end repeat
end open


statt der Dateiendung würde ich persönlich mit type identifier arbeiten
siehe #5 type identifier statt name extension



Gruß
 
Zuletzt bearbeitet:

prom0e

Golden Delicious
Registriert
17.12.13
Beiträge
6
Hallo,

so wird das ein langer Marsch :-D

Den on open Handler gestaltet man i.d.R. so , dass mehrere Objekte nacheinander abgearbeitet werden können:

Code:
on open theFiles
repeat with xFile in theFiles
tell app "Finder" to set nameExt to name extension of xFile
--oder ohne Finder:
--set nameExt to (name extension of (info for xFile))
if nameExt is "psd" then
tell application "Adobe Photoshop CS6"
activate
open file (xFile as string)
end tell
--usw
end if
end repeat
end open


statt der Dateiendung würde ich persönlich mit type identifier arbeiten
siehe #5 type identifier statt name extension



Gruß

vielen Dank schonmal!

Aber wenn ich type identifier benutze, funktioniert das Script nicht mehr.
set nameExt to (type identifier of (info for xFile))
Nachdem ich eine Datei auf das Droplet gezogen habe startet das Applescript, aber wird sofort wieder geschlossen.
Mit der "Finder"-Variante funktioniert es soweit.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,

du solltest schon die Antworten aufmerksam lesen. Hier im AppleScript Forum wird in der Regel kurz aber präzise geantwortet :cool:
In sofern fällt diese Antwort schon mal raus *grins

on open xFile
display dialog (type identifier of (info for xFile))
end open


Wenn du das laufen lässt, siehst du den type identifier.
Der lautet so was in der Art "com.adobe-xxx" für z.B. psd Dateien.
Du könntest der Übersicht halber die Variable nameExt umbenennen in theTI oder wie auch immer, ansonsten würde das lauten:
if nameExt is "com.adobe-xxx" then
usw

Gruß
 

prom0e

Golden Delicious
Registriert
17.12.13
Beiträge
6
ah mit #5 dachte ich du meinst Zeile 5 deines Codes, da ich das aus einem Applescript Tutorial kenne. (Dort wurde mit #Zahl immer auf eine Zeile in einem Code verwiesen)
Bin neu hier im Forum deswegen kenn ich die ganzen Kürzel/Abkürzungen nicht..
Trotzdem vielen Dank. Ich bleibe erstmal bei der Dateiendung.