Im AppleScript Editor kann ich sehen, dass source_code Skriptinhalt hat, aber Zeile 2 aus irgendeinem Grund fehlschlägt.
set source_code to load script (POSIX file "/path/to/script.scpt")
word 2 of source_code
Das geht nicht. Ich versuche, AppleScript-Dateien in Variable zu lesen.
Ich versuche nicht, diesen geladenen Code auszuführen, aber ich muss ihn als Zeichenfolge abrufen.
Es scheint zu scheitern, weil source_code nicht string, sondern «script» ist. Wie kann das behoben werden? Vielen Dank
set source_code to load script (POSIX file "/path/to/script.scpt")
word 2 of (source_code as string) -->error "Can’t make «script» into type string." number -1700 from «script» to string
word 2 of source_code -->error "Can’t get word 2." number -1728 from word 2
macos
applescript
ps22
quelle
quelle
set source_code ...
) aber der zweite nicht? Was erwartest du von der zweiten Zeile genau?Antworten:
Das
load script
Der Befehl lädt ein Skript als auszuführendes Objekt und nicht als zu lesenden oder zu bearbeitenden Text.Wenn Sie auf den eigentlichen Text Ihres Skripts zugreifen möchten, können Sie osadecompile verwenden:
Mit AppleScript Editor gespeicherte kompilierte Skripts haben normalerweise LF-Zeilenenden in Zeichenfolgen, CR-Zeilenenden an anderen Stellen. osadecompile konvertiert alle Zeilenenden in LF.
do shell script
konvertiert Zeilenenden in CR, sofern Sie keinwithout altering line endings
Bezeichner.quelle
cat Untitled.scpt/..namedfork/rsrc
/xattr -p com.apple.ResourceFork Untitled.scpt | xxd -r -p
) und es ist eigentlich Rich-Text, aber ich weiß nicht, wie ich es in RTF oder Nur-Text konvertieren soll.