Der ultimative Anfängerleitfaden für AppleScript
() translation by (you can also view the original English article)
Das ist der erste Beitrag in einer neuen Reihe, der einige der Lieblingsbeiträge unserer Leser aus der Vergangenheit erneut aufgreift, die immer noch großartige und relevante Informationen enthalten, die Sie möglicherweise nützlich finden. Dieser Beitrag wurde ursprünglich am 7. Juli 2009 veröffentlicht.
Das Beste an AppleScript ist, dass Sie kein genialer Programmierer sein müssen. Allerdings müssen Sie keinerlei Programmiererfahrung haben. Dieser Artikel zeigt Ihnen, wie Sie ein AppleScript für jede Anwendung mit der einfachen Anweisungen schreiben, die im Framework jeder App versteckt sind. Fasziniert? Lesen Sie weiter!
Was ist AppleScript?
AppleScript ist eine leistungsstarke Skriptsprache, die in OS X integriert ist. Die Hauptanwendung für AppleScript ist die Automatisierung von Aufgaben, die sich normalerweise wiederholen und zeitaufwändig sind. Als Freiberufler hasse ich es beispielsweise, jede Woche Rechnungen für meine verschiedenen Kunden zu erstellen. Um dieses Problem zu lösen, habe ich ein AppleScript geschrieben, das die Stunden liest, in denen ich mich bei iCal anmelde, eine Rechnung in Microsoft Excel basierend auf diesen Stunden erstellt und die Rechnungen per E-Mail an meine Kunden sendet. Alles auf Knopfdruck!



Das Hauptfenster
Erste Schritte: Der Tell-Block
Öffnen Sie zum Erstellen eines AppleScript die Anwendung "Skript-Editor" im AppleScript-Ordner im Anwendungsordner. Sie sollten ein einfaches Fenster sehen, das ein großes Textfeld mit einem Schaltflächenstreifen oben enthält. Geben Sie im Textfeld den folgenden Code ein:
[applescript]
Anwendung "Finder" mitteilen
Anzeigedialog "Hello World"
Ende erzählen
[/applescript]
AppleScript versucht, wo immer möglich, einfaches Englisch zu verwenden, um die Codierung extrem einfach zu gestalten. Die meisten Befehle in AppleScript befinden sich in einem "tell block". Es wird als "tell block" bezeichnet, weil Sie einer bestimmten Anwendung "sagen", was sie tun soll. Der obige Code weist den Finder beispielsweise an, ein Dialogfenster mit den Worten "Hello World" anzuzeigen. Nachdem Sie mit einem Befehl oder einer Befehlsfolge für eine bestimmte Anwendung fertig sind, beenden Sie den Block mit "end tell".
Denken Sie immer daran, Ihre Tell-Blöcke korrekt zu beenden, da sonst der Code nicht kompiliert wird!
Nachdem Sie den obigen Code eingegeben haben, klicken Sie auf das Hammersymbol "Compile". Wenn Ihre Syntax korrekt ist, wird Ihr Code automatisch formatiert und koloriert. Wenn Sie einen Fehler gemacht haben, hebt der Skript-Editor den Problembereich hervor und gibt Ihnen eine Meldung darüber, was Ihrer Meinung nach möglicherweise schief gelaufen ist. Hier finden Sie eine Kurzreferenz zu den verschiedenen Farben, die Sie in Ihrem kompilierten Code sehen (im Skript-Editor > Einstellungen).



Farbführer
Nachdem Ihr Code kompiliert wurde, klicken Sie auf die Schaltfläche "Run". Sie müssen den folgenden Dialog sehen:

Hello World
Klicken Sie nun auf die Schaltfläche "OK" und sehen Sie sich das untere Fenster Ihres Skripteditors an. Wenn Sie ein Skript ausführen, teilt Ihnen der Skripteditor mit, was das Ergebnis war oder was "zurückgegeben" wurde. In diesem Fall wird Ihnen mitgeteilt, dass auf die Schaltfläche "OK" geklickt wurde.



Die OK-Rückkehr
Variablen deklarieren
Variablen sind in jeder Programmiersprache im Wesentlichen gleich. Sie bieten eine einfache Möglichkeit, auf viele Informationen in einem kompakten Codeausschnitt zuzugreifen und diese zu bearbeiten. Das Erstellen oder "Deklarieren" von Variablen ist für jede Sprache unterschiedlich. In AppleScript deklarieren Sie Variablen wie folgt:
[applescript]
setze den String auf "Hello World"
Anwendung "Finder" mitteilen
Anzeigedialog theString
Ende erzählen
[/applescript]
Beim vorherigen Beispiel sind einige Dinge zu beachten. Beachten Sie zunächst, dass Variablen mit den Befehlen "set" und "to" deklariert werden. Auf diese Weise setzen Sie Ihren Variablennamen, in diesem Fall "theString", auf etwas, in diesem Fall auf den Text "Hello World". In vielen Programmiersprachen müssen Sie den gewünschten Variablentyp in der Deklaration angeben (Ganzzahl, Gleitkomma, Text usw.). AppleScript ist jedoch intelligent genug, um mit Ihren Variablen zu arbeiten, ohne Anweisungen zum Format zu erhalten.
Beachten Sie auch, wie ich meinen Variablennamen eingegeben habe. Sie können keine Leerzeichen in einem Variablennamen haben, daher empfiehlt es sich, die Groß-/Kleinschreibung (theString) oder die Unterstrichmethode (the_string) zu verwenden. Es spielt keine Rolle, für welche Methode Sie sich entscheiden. Stellen Sie lediglich sicher, dass Sie im gesamten Code konsistent sind. Es ist auch eine gute Idee, allen Variablen aussagekräftige Namen zu geben. Wenn Sie den Code eines anderen Programmierers suchen, kann es ärgerlich sein, Variablennamen wie "myVariable" zu sehen, die keinen Hinweis darauf geben, was sie sind oder wofür sie verwendet werden.
Beachten Sie schließlich, dass ich jetzt, da ich den Text "Hello World" in eine Variable eingefügt habe, diese Variable im gesamten Code immer wieder aufrufen kann. Wenn ich mich später entscheide, den Text "Hello World" in "Good Morning Dave" zu ändern, muss ich nur den Text in der Zeile ändern, in der ich die Variable deklariert habe.
Arbeiten mit Variablen
Sie können mit Variablen alle möglichen verrückten Dinge tun, aber da dies nur eine kurze Einführung in AppleScript sein soll, zeige ich Ihnen nur einige. Geben Sie den folgenden Code ein:
[applescript]
--Ganzzahlvariablen
Setzen Sie theFirstNumber auf 3
Setzen Sie theSecondNumber auf 2
--Variable Operationen
Setzen Sie theAnswer auf (theFirstNumber + theSecondNumber)
setze theAnswer auf (theAnswer + 1)
--String-Variablen
setze theString auf "3+2+1="
--Dialogfeld anzeigen
Anwendung "Finder" mitteilen
Anzeigedialog theString & theAnswer
Ende erzählen
[/applescript]
Sie können Ihren Code schnell kompilieren, indem Sie die Eingabetaste (nicht die Eingabetaste) drücken. Diese befindet sich auf dem Zehn-Tasten-Nummernblock auf Desktop-Computern und neben der Befehlstaste rechts neben der Leertaste auf Laptops.
Wenn Ihr Skript komplexer wird, ist ein wenig Organisation angebracht. Durch Eingabe von zwei Bindestrichen "--" vor einer Textzeile können Sie einen Kommentar einfügen. Verwenden Sie Kommentare, um Ihre Codeabschnitte für eine einfache Navigation zu trennen und zu beschreiben. In diesem Beispiel habe ich eine Zeichenfolgenvariable (nur Text) und einige ganzzahlige Variablen erstellt. Beachten Sie, dass Sie mathematische Operationen an Variablen ausführen können. Hier habe ich "theFirstNumber" auf drei und "theSecondNumber" auf zwei gesetzt und sie dann in "theAnswer" addiert.
Beachten Sie auch, dass Sie eine Variable ändern können, nachdem sie deklariert wurde. Unmittelbar nachdem ich "theAnswer" auf die Summe von "theFirstNumber" und "theSecondNumber" gesetzt hatte (was zu 5 führte), änderte ich den Wert von "theAnswer", indem ich eins hinzufügte (was zu 6 führte). Wenn Sie dieses Skript ausführen, sollte das folgende Ergebnis angezeigt werden:

Einige grundlegende Mathematik
Dies kratzt wiederum nur die Oberfläche der Arten von Operationen, die Sie für Variablen ausführen können. Im Moment sollten Sie nur verstehen, dass eine Variable nicht statisch ist. Ein großer Teil der Leistungsfähigkeit einer Programmiersprache liegt in der Fähigkeit, Variablen zu manipulieren, um eine Vielzahl von Aufgaben auszuführen.
Der Schlüssel zu allem: AppleScript-Wörterbücher
Obwohl AppleScript selbst über eine Vielzahl von Befehlen verfügt, die auf jedes Programm oder Element in OS X angewendet werden können, müssen die Entwickler jeder Anwendung ihren Apps vollständige AppleScript-Unterstützung hinzufügen. Dies bedeutet, dass Entwickler einfache Handbücher für die Kommunikation mit ihren Anwendungen über AppleScript schreiben müssen. Diese Handbücher werden als "Dictionaries" bezeichnet. Um ein Wörterbuch anzuzeigen, gehen Sie im Skript-Editor zu Datei > Wörterbuch öffnen. Scrollen Sie durch die Liste der Anwendungen, klicken Sie auf Mail und klicken Sie auf "OK". Sie sollten das folgende Fenster sehen:



Das Mail-Wörterbuch
Die linke Spalte enthält die verfügbaren "Suiten" mit Befehlen und Elementen. Wenn Sie auf eine Suite klicken, wird unten alles angezeigt, was in der Suite enthalten ist. Sie können diese Vorschau eingrenzen, indem Sie in die zweite Spalte und dann erneut in die dritte klicken. Suiten enthalten Befehle (C mit einem Kreis) und Klassen (C mit einem Quadrat), Klassen enthalten Eigenschaften (P) und Elemente (E). Um zu verstehen, wie das alles funktioniert, verwenden wir dieses Wörterbuch, um ein Skript zu erstellen.
Schritt 1: Erstellen Sie einen Algorithmus für unser Skript
Zuerst brauchen wir einen Algorithmus, was eine ausgefallene Art ist zu sagen, dass wir genau aufschreiben müssen, was unser Skript tun wird. Wir möchten ein Skript erstellen, um eine E-Mail zu verfassen und zu senden. Wir möchten Variablen verwenden, um das Ändern der Nachricht selbst sowie die Person, an die die Nachricht gesendet wird, zu vereinfachen. Während wir unseren Algorithmus schreiben, müssen wir die Funktionsweise von AppleScript berücksichtigen. Hier sind die Schritte, die ich mir ausgedacht habe:
- Erstellen Sie Variablen für den Empfänger, die E-Mail-Adresse des Empfängers, den Betreff der E-Mail und den Text für den Text der E-Mail.
- Erstellen Sie eine Variable, die unsere neue Nachricht zusammen mit ihren verschiedenen Eigenschaften enthält
- Erstellen Sie die neue Nachricht
- Senden Sie die neue Nachricht
Schritt 2: Erstellen Sie einige Variablen
Wir wissen bereits, wie man Variablen mit Text erstellt, sodass wir für Schritt eins nicht einmal das Wörterbuch benötigen. So sieht der Code aus:
[applescript]
--Variables
setze recipientName auf "John Doe"
Setzen Sie die recipientAddress auf "nobody@nowhere.com"
Setzen Sie theSubject auf "AppleScript Automated Email"
Setzen Sie theContent auf "This email was created and sent using AppleScript!"
[/applescript]
Wie Sie sehen, haben wir nur Platzhaltertext in die Variablen für den Namen und die E-Mail-Adresse des Empfängers sowie den Betreff und den Inhalt unserer Nachricht eingefügt. Sie können diese nach Belieben ändern. Stellen Sie sicher, dass Sie Ihre eigene E-Mail-Adresse in die Variable recipientAddress eingeben, damit Sie sicherstellen können, dass das Skript beim Empfang der E-Mail ordnungsgemäß funktioniert.
Schritt 3: Erstellen Sie die Nachrichtenvariable mit dem Mail-Wörterbuch
Da wir keine Ahnung haben, wie wir Mail anweisen sollen, eine neue Nachricht zu erstellen, müssen wir hier auf das AppleScript-Wörterbuch verweisen. Wenn Sie auf "Standard Suite" klicken, werden mehrere allgemeine Befehle angezeigt, die in AppleScript standardmäßig enthalten sind. Da wir wissen, dass wir eine neue Nachricht "create" möchten, scrollen wir einfach durch die Optionen und finden etwas Äquivalentes. Sie werden sehen, dass es keinen "create" -Befehl gibt, aber ungefähr auf halber Höhe gibt es einen "make" -Befehl. Das klingt perfekt, also wissen wir jetzt, dass wir AppleScript mitteilen müssen, dass wir etwas "make" wollen.
Klicken Sie anschließend auf die "Mail" -Suite. Wir haben bereits unseren Befehl (make), scrollen Sie also an den Befehlen (Verben) vorbei, bis Sie die Klassen (Substantive) sehen. Die erste Klasse, auf die wir stoßen, ist "outgoing message", was großartig ist, denn genau das wollen wir! Klicken Sie nun auf die Klasse "outgoing message" und sehen Sie sich die verfügbaren Eigenschaften unten an.
Wir müssen unsere Variablen für den Namen des Empfängers, die E-Mail-Adresse des Empfängers, den Betreff und den Inhalt der Nachricht einfügen. In der Liste der Eigenschaften gibt es nichts über den Empfänger, aber es gibt Eigenschaften für Betreff und Inhalt. Wir kennen jetzt die richtige Syntax, um auf diese Eigenschaften zu verweisen. Beachten Sie, dass das Wörterbuch das Format zum Definieren der Eigenschaften enthält. Zum Beispiel geben wir für das Thema das Wort "subject" gefolgt von einem Doppelpunkt gefolgt vom Text des Themas ein.



Betreff Inhalt
Auch in dieser Suite finden Sie einen "send" -Befehl, mit dem wir die Nachricht senden können, indem Sie einfach "send" eingeben. Wir müssen noch die richtige Syntax für den Namen und die E-Mail-Adresse des Empfängers kennen. Da es nicht in dieser Suite enthalten ist, klicken Sie auf die Suite "Message". Etwa in der Mitte der Liste der Klassen finden wir "recepient". Klicken Sie auf die Empfängerklasse und wir sehen, dass wir wieder einfaches Englisch verwenden können, um auf die Eigenschaften des Empfängers zu verweisen. Wir geben einfach "name" und "address" ein.
Mit der Suchfunktion können Sie Eigenschaften, Klassen, Elemente und Befehle schnell suchen.
Jetzt können wir unsere Nachrichtenvariable mit der soeben erlernten Syntax erstellen. So sieht der Code aus:
[applescript]
--Variables
setze recipientName auf "John Doe"
Setzen Sie die recipientAddress auf "nobody@nowhere.com"
Setzen Sie theSubject auf "AppleScript Automated Email"
Setzen Sie theContent auf "This email was created and sent using AppleScript!"
--Mail Tell Block
Anwendung "Mail" mitteilen
--Erstellen Sie die Nachricht
Stellen Sie theMessage so ein, dass eine neue ausgehende Nachricht mit Eigenschaften erstellt wird {subject: theSubject, content: theContent, visible: true}
Ende erzählen
[/applescript]
Beachten Sie, dass ich einen Tell-Block erstellt habe, um alle Befehle in die Mail-Anwendung einzuschließen. Dann setze ich eine Variable (theMessage), um eine neue "ausgehende Nachricht" mit den oben diskutierten Eigenschaften zu "erstellen". Beachten Sie auch, dass Sätze von Eigenschaften immer in Klammern { } enthalten sind.
Schritt 4: Stellen Sie den Empfänger ein und senden Sie die Nachricht
Nachdem wir unsere Nachrichtenvariable erstellt haben, müssen wir diese Variable aufrufen und eine neue Nachricht mit den Eigenschaften theMessage erstellen. Wir müssen auch die Empfänger festlegen und die Nachricht senden. Dazu verwenden wir einen Tell-Block für unsere Variable. Hier ist unser fertiges Skript.
[applescript]
--Variables
setze recipientName auf "John Doe"
Setzen Sie recipientAddress auf "nobody@nowhere.com"
Setzen Sie theSubject auf "AppleScript Automated Email"
Setzen Sie theContent auf "This email was created and sent using AppleScript!"
--Mail Tell Block
Anwendung "Mail" mitteilen
--Erstellen Sie die Nachricht
Stellen Sie die Nachricht so ein, dass eine neue ausgehende Nachricht mit Eigenschaften erstellt wird {subject: theSubject, content: theContent, visible: true}
--Stellen Sie einen Empfänger ein
Sagen Sie der Nachricht
Neu machen für Empfänger mit Eigenschaften {name:recipientName, address:recipientAddress}
--Senden Sie die Nachricht
senden
Ende erzählen
Ende erzählen
[/applescript]
Zuerst haben wir eine neue Kopie der Nachricht erstellt (die alle Eigenschaften erbt, die wir in sie eingefügt haben) und sie auf "Empfänger mit Eigenschaften" gesetzt. Dies teilt Mail mit, dass wir einen Empfänger mit den folgenden Eigenschaften hinzufügen möchten. Hier haben wir nur die zuvor gelernte Syntax und die Variablen für den Namen und die Adresse des Empfängers verwendet.
Schließlich haben wir den Befehl "send" aufgerufen, um unsere Nachricht zu senden. Beachten Sie, dass wir dieses Mal zwei Tell-Blöcke zum Schließen haben. Sobald Sie Ihren Code kompiliert und alle Fehler behoben haben, klicken Sie auf "Run". Mail sollte die Nachricht automatisch erstellen und senden. Tadaah! Überprüfen Sie Ihren gesendeten Ordner, um sicherzustellen, dass alles funktioniert hat.



Mail-Nachricht
Herzlichen Glückwunsch, Sie haben Ihr erstes AppleScript erstellt! Sie können es als einfaches Skript speichern, das Sie erneut bearbeiten können, oder als Anwendung, die beim Öffnen automatisch ausgeführt wird.
Abschluss: Lernen Sie weiter
Ich hoffe, dieser Anfängerleitfaden lässt Sie über alle Arten von Prozessen und Aufgaben nachdenken, die Sie automatisieren möchten. Die Syntax, die ich Ihnen zusammen mit den AppleScript-Wörterbüchern gezeigt habe, bringt Sie weit. Wenn Sie jedoch wirklich daran interessiert sind, AppleScript auf eine Reihe nützlicher Arten zu implementieren, müssen Sie mehr lesen. Apple bietet auf seiner Website viele Informationen zu AppleScript. Hier ist ein guter Anfang.
Eine andere Website, von der ich viel gelernt habe, ist T&B. Es bietet einige wirklich ausführliche Erklärungen und Tutorials, denen Sie folgen können (etwas veraltet, aber gründlich und kostenlos). Bitte hinterlassen Sie einen Kommentar und teilen Sie uns mit, ob Sie dieses Tutorial hilfreich fanden! Welche anderen AppleScript-Tipps möchten Sie in Zukunft sehen?