Ressource wird nicht gefunden

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von detto, 04.05.2008.

  1. detto

    detto Thread Starter MU Mitglied

    Registriert seit:
    22.08.2007
    Beiträge:
    3.158
    Zustimmungen:
    263
    Ort:
    Oldenburg
    :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:
     
  2. Chief_Wiggum

    Chief_Wiggum MU Mitglied

    Registriert seit:
    17.01.2007
    Beiträge:
    99
    Zustimmungen:
    0
    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:

    http://www.ratschlag24.com/index.ph...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