Ressource wird nicht gefunden

detto

Aktives Mitglied
Thread Starter
Dabei seit
22.08.2007
Beiträge
3.182
Reaktionspunkte
263
:moin:

Ich hab mir ein kleines Applescript gebastelt und als Programmbundle gespeichert. Im AS selber steht nur:
Code:
tell application "Terminal"
	set dasSkript to (path to resource "Script.sh")
	do script dasSkript
end tell
Die angegebenen Datei Script.sh befindet sich innerhalb des Programmbundles, genaue Pfadangabe also: Contents/Resources/Script.sh.
Nun wird mir beim Starten des erstellen Apps aber gesagt "Resource nicht gefunden".

:confused:
 
Hallo detto,

hab mir deinen Code mal vorgeknöpft...

1.
die "path to resource" Anweisung muss ausserhalb des tell-Block stehen, da "Terminal" den Befehl nicht kennt

2.
es muss wohl "do shell script" heißen und nicht "do script"

3.
Der Pfad, den du von "path to resource" erhälst ist ein Applescript Pfad mit Doppelpunkten. Du brauchst für "do shell script" aber den Linux-tauglichen POSIX Pfad

4.
Und jetzt das Wichtigste: Kann es sein, dass du, wie ich 'Tiger' benutzt?

Denn in dieser Version hat der Skript-Editor so seine Schwierigkeiten mit der 'path to' Anweisung. Wenn du das Skript im Editor ausführen willst, sucht er dann immer in seinem eigenen Unterodner.
Bei 'path to resource' wird also im Resource-Ordner des Skripteditor-Bundle gesucht. Und da is die Datei ja nunmal nicht!!!
Du musst, um das zu umgehen, dein Bundle als Application Bundle speichern und dann mit Doppleklick starten oder eine absolute Pfadangabe machen. Dann ist die Referenz richtig.

Ganau nachlesen kannst du das hier:

ratschlag24.com/wie-man-mit-path-to-resource-auf-ein-applescript-in-einem-bundle-zugreift/

(scrolle runter bis zum Kapitel "Lösung für Tiger-Anwender")

Also Code ändern:
Code:
set p to path to resource "Script.sh"
set dasSkript to quoted form of POSIX path of p
tell application "Terminal"
do shell script dasSkript
end tell

Als Application Bundle speichern und mit Doppelklick ausführen. Dann sollte es funktionieren

Viel Erfolg,
Clancy Wiggum
 
Zurück
Oben Unten