• 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

[AppleScript] Zugriff auf Datei mit variablem Speicherort

tomkaso

Erdapfel
Registriert
08.09.21
Beiträge
3
Ich bin gar kein Script-Held. Ich erstelle Scripts durch Kopieren von Passagen aus funktionierenden Scripts oder durch Aufzeichen und versuche dann mit kleinen Anpassungen zum Ziel zu kommen.
Wenn ich das Öffnen einer Datei vom ScriptEditor aufzeichnen lasse, so sieht das Ergebnis z.B. so aus:

tell application "Finder"
activate
open document file "Dok.pdf" of folder "Desktop" of folder "IchSelbst" of folder "Users" of startup disk
end tell

Da die durch das Script zu öffnende Datei sich aber irgendwo in der Ordnerhierarchie befinden kann (der Pfad zur Datei wurde vorher im Script ermittelt) , suche ich eine Lösung, wo ich den Pfad anders angeben kann, in obigem einfachen Fall Habe ich es so versucht:
open document file “/Users/IchSelbst/Desktop/Dok.pdf“ of startup disk
Leider wird diese Schreibweise nicht akzeptiert. Gibt es eine Möglichkeit, den Pfad zur Datei im Öffnen-Befehl in dieser oder ähnlicher Weise anzugeben?
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.560
Dass AppleScript immer noch in Platten und Disketten denken kann, ist ein Überbleibsel aus dem klassischen Mac OS. Dieses alte Konzept passt nicht zum modernen Konzept von Dateipfaden, bei denen Platten ja keinerlei Rolle mehr spielen. Ein absoluter Pfad kann also nicht mit etwas wie "startup disk" kombiniert werden.

Um einen Dateipfad zu verwenden, musst Du AppleScript nur sagen, dass es moderne POSIX-Begriffe verwenden soll, also

tell application "Finder" to open "/Users/IchSelbst/Desktop/Dok.pdf" as POSIX file

Wenn es nur darum geht, eine Datei automatisch vom Betriebssystem öffnen zu lassen, wäre es allerdings noch einfacher, nicht ein kompliziertes AppleScript, sondern ein einfaches UNIX-Shell-Script zu verwenden:

#/bin/sh
/usr/bin/open ~/Desktop/Dok.pdf
 
  • Like
Reaktionen: doc_holleday

tomkaso

Erdapfel
Registriert
08.09.21
Beiträge
3
Danke, das hat bestens funktioniert. Aber jetzt habe ich noch eine Anschlussfrage: Wenn ich die Datei gar nicht öffnen, sondern nur wissen möchte, ob sie existiert – wie mache ich das? Ich stelle mir etwa folgende Formulierung vor:

if file "…" exists
display dialog "…"
else

end if
 

Kernelpanik

Maren Nissen
Registriert
05.03.04
Beiträge
2.303
try
"/Users/IchSelbst/Desktop/Dok.pdf" as
POSIX file as alias
on error
say "nicht haben"
end try
 

tomkaso

Erdapfel
Registriert
08.09.21
Beiträge
3
Auch dieser Tipp hat geholfen. Danke! Bis ich die Struktur in ein dokumentinternes Skript eines RagTime-Dokumentes einbauen konnte, musste ich allerdings noch einige weitere Klippen überwinden. Aber schliesslich hat es geklappt.