Um Ihre spezifische Frage zu beantworten, wie sich AppleScript seit 2009 verändert haben könnte, werde ich nicht die unzähligen Möglichkeiten erraten, die sich seitdem entwickelt haben könnten (und ich konnte keine Sprachdokumentation aus 2009 oder früher finden), aber ich kann das hervorheben Aktuelle Formulierung, wie sie zu Ihrem Code-Snippet gehört. Wo also Ihr Skript den Fehler wirft, mit dem Syntaxfehler in set folder "Documents" of home
.
Der set
Befehl wird in (der aktuellen Version von) AppleScript definiert:
[die] zuweisen [ment of] einen oder mehr Werte zu einem oder mehreren Variablen .
Es hat die folgende Syntax:
setze variablePattern auf Ausdruck
Dabei variablePattern
ist der Name einer Variablen oder Liste von Variablen und wird expression
zu den Werten berechnet, die den Variablen zugewiesen werden.
(Hinweis: Der AppleScript-Sprachführer besagt, dass die zweite Hälfte der Deklaration to %expression%
optional ist. Ich kann mir jedoch keine Instanz vorstellen, für die dies zutrifft, und set
muss meines Erachtens immer der vollständigen Syntax folgen oben beschrieben. Vielleicht ist dies eine der Möglichkeiten, wie sich die Sprache verändert hat ...?)
Einfach ausgedrückt, set
wird immer verwendet, um den Wert einer Sache zu übernehmen und einer anderen zuzuweisen, genau wie alle anderen Zeilen Ihres Code-Snippets.
In der folgenden Zeile:
set folder "Documents" of home
Wir haben nur eine halbe Deklaration: Der Befehl beginnt mit der Angabe eines Objekts (in diesem Fall eines Ordners), das einen neuen Wert annehmen soll, aber nicht angeben, wie der neue Wert aussehen soll.
Darüber hinaus kann das folder
Objekt normalerweise keinen Werten selbst zugewiesen werden. Man kann nicht befehlen:
set folder "Documents" of home to desktop
Doch eines kann das zuweisen folder
Objekt etwas anderes, wie eine Variable oder den Wert einer vorhandenen Eigenschaft, wie die target
Eigenschaft ein Finder window
:
set the target of the front Finder window to folder "Documents" of home
Der set
Befehl weist das AppleScript an, den Wert des Ausdrucks zu verwenden folder "Document" of home
(der als Standortreferenz auf der Festplatte ausgewertet wird) und dieser target
Eigenschaft der Eigenschaft des zuzuweisen front Finder window
(die steuert, welches Verzeichnis im Fenster angezeigt wird). Wie erwartet, wechselt das Verzeichnis des aktiven Finder- Fensters vom Ausgangsverzeichnis in das Verzeichnis Dokumente .
Dies scheint wie ein unwahrscheinlich gewünschtes Ergebnis, da all diese Maßnahmen zu einem einzigen Anwendung Finder - Fenster bedeutet, dass die vorhergehenden Zeilen etwas überflüssig sind: Es wäre nicht notwendig, die öffnen Start - Ordner und ihre Eigenschaften ( toolbar visible
, sidebar width
, current view
und bounds
) nur dann um das Verzeichnis zu ändern und für alle diese Eigenschaften neue Werte festzulegen.
Ich denke, die wahrscheinlichste Lösung ist eine von @ wch1zpink angedeutete Antwort in seiner Antwort, die darin besteht, ein neues Finder- Fenster am Ort des Dokumentenordners zu öffnen .
Ich entschied mich dazu, dies auf die gleiche Weise zu tun wie das Skript mit dem Home- Ordner:
open folder "Documents" of home
was die Problemlinie komplett ersetzt. Das resultierende Skript hat also eine angenehme Symmetrie bei der Erstellung und Bearbeitung der beiden Fenster:
tell application "Finder" activate close every window open home set toolbar visible of the front Finder window to true set the sidebar width of the front Finder window to 135 set the current view of the front Finder window to column view set the bounds of the front Finder window to open folder "Documents" of home set toolbar visible of the front Finder window to false set the current view of the front Finder window to flow view set the bounds of front Finder window to select the last Finder window end tell
Der open
Befehl öffnet sich offensichtlich ein neues Finder - Fenster an der angegebenen Stelle, sondern macht auch das neue Finder - Fenster der Front Finder - Fenster .
Aus diesem Grund ist es einfacher zu sehen, dass der erste set
Anweisungsblock für ein Finder- Fenster gilt. und der zweite Block ist für einen anderen.
Hoffentlich habe ich Ihre Anfrage direkt angesprochen und eine sinnvolle Erklärung gegeben. Verzeihen Sie, wenn etwas, was ich geschrieben habe, herablassend klingt: Ich habe versucht zu vermeiden, was Sie tun und wissen nichts über AppleScript, obwohl Beweise vorliegen, dass Sie eindeutig kein Neuling sind (2.5K-Reputation bei Super User). Wenn jedoch etwas von dem, was ich geschrieben habe, mehrdeutig oder schlecht erklärt ist, lassen Sie es mich wissen, und ich werde Ihnen gerne eine Klarstellung oder ein entsprechendes Wort geben.