Wie kann ich ein AppleScript veranlassen, einen Ordner im Inhalt eines Bundles für einen Alias ​​auf dem Desktop zu verwenden?

0

Ich versuche, ein AppleScript zu schreiben, um einen temporären Alias ​​auf dem Desktop aus einem Ordner zu erstellen, der sich im Ordner "Bundle Contents: Resources" befindet, und dann einen Terminalbefehl auszuführen, der ein Argument aus einer Datei enthält, die sich auch im Ordner "Bundle Contents: Resources" befindet Ordner und entfernen Sie dann den temporären Alias ​​vom Desktop, wenn Sie fertig sind oder beenden.

Wie behebe ich den folgenden Code, um dies zu erreichen?

set myRes to (path to me as text) & "Contents:Resources:"

tell application "Finder"
     make new alias to folder myRes & "Pass-Through Drive" at desktop
end tell

tell application "Terminal"
     activate
     do script myRes & "BasilliskII --config basilisk_ii_prefs"
end tell

tell application "Finder"
     delete file "Pass-Through Drive" of desktop
end tell

Dies ist der Fehler, den ich erhalte:

error "Can’t make «class cfol» \"Resources\" of «class cfol» \"Contents\" of «class appf» 
  \"Mac OS 8.1.app\" of «class cfol» \"Desktop\" of «class cfol» \"ryan\" of «class cfol»
  \"Users\" of «class sdsk» of application \"Finder\" into type list, record or text."
  number -1700 from «class cfol» "Resources" of «class cfol» "Contents" of «class appf» 
  "Mac OS 8.1.app" of «class cfol» "Desktop" of «class cfol» "ryan" of «class cfol» "Users"
  of «class sdsk» to list, record or text

Ich glaube, ich habe es auf ... korrigiert

set myRes to (path to me as text) & "Contents:Resources:"

tell application "Finder"
     make new alias to folder (myRes & "Pass-Through Drive") at desktop
end tell

tell application "Terminal"
     activate
     do script myRes & "BasilliskII --config " & myRes & "basilisk_ii_prefs"
end tell

tell application "Finder"
    delete file "Pass-Through Drive" of desktop
end tell

Aber ich habe immer noch Probleme mit den mittleren Zeilen und der richtigen Syntax für das, was ich erreichen möchte.

CyberManifest
quelle

Antworten:

1

Sie müssen Terminal nicht anweisen, das Skript auszuführen (es sei denn, Sie möchten es nur im Auge behalten). Sie sollten jedoch auch einen mit einem Escapezeichen versehenen Posix-Pfad verwenden, um Fehler zu vermeiden.

Du könntest es so machen ...

set myRes to alias (path to me as text) & "Contents:Resources:"

tell application "Finder"
     make new alias to folder (myRes & "Pass-Through Drive") at desktop
end tell

set posixRes to (POSIX path of myRes)

do shell script quoted form of posixRes & "BasilliskII --config " & quoted form of posixRes & "basilisk_ii_prefs"

tell application "Finder"
    delete file "Pass-Through Drive" of desktop
end tell
Mike Marlett
quelle
Ich erhalte eine Fehlermeldung: Finder hat eine Fehlermeldung erhalten: {alias "Macintosh HD: Benutzer: ryan: Desktop: Mac OS 8.1.app:", "Inhalt: Ressourcen:", "Pass-Through-Laufwerk"} kann nicht erstellt werden Integer-Typ.
CyberManifest