Den Ultimate Beginner's Guide To AppleScript

Dette er det første innlegget i en ny serie som gjenspeiler noen av våre lesers favorittinnlegg fra fortiden, som fremdeles inneholder kjempebra og relevante opplysninger som du kan finne nyttige. Dette innlegget ble opprinnelig publisert 7. juli 2009.

Den beste delen om AppleScript er at du ikke trenger å være en geni programmerer å bruke den. Faktisk trenger du ikke å ha noen programmeringserfaring overhodet. Denne artikkelen vil vise deg hvordan du skriver en AppleScript for nesten alle programmer ved hjelp av de enkle instruksjonene som kommer skjult i hver apps rammeverk. Fascinert? Les videre!


Hva er AppleScript?

AppleScript er et kraftig skriptspråk som kommer innebygd i OS X. Hovedbruken for AppleScript er automatisering av oppgaver som vanligvis er repeterende og tidkrevende. For eksempel, som freelancer, hater jeg å lage fakturaer hver uke for mine forskjellige kunder. For å løse dette problemet skrev jeg en AppleScript som leser de timene jeg logger på iCal, lager en faktura i Microsoft Excel basert på disse timene, og sender fakturaene til klientene mine. Alt med et tastetrykk!


Hovedvinduet

Komme i gang: Tell Block

For å opprette en AppleScript, åpne programmet "Script Editor" som ligger i AppleScript-mappen i Programmer-mappen. Du bør se et enkelt vindu som inneholder et stort tekstfelt med en stripe av knapper langs toppen. Inne i tekstfeltet skriv inn følgende kode:

[Apple]
Fortell søknad "Finder"

vise dialogboksen "Hello World"

slutt tell
[/ Apple]

AppleScript forsøker å bruke vanlig engelsk når det er mulig for å gjøre kodingen ekstremt enkel. De fleste kommandoer i AppleScript er plassert i en "tell block". Det kalles en "fortell blokk" fordi du "forteller" et bestemt program hva du vil at den skal gjøre. For eksempel forteller koden ovenfor at Finder viser et dialogvindu som inneholder ordene "Hello World". Etter at du er ferdig med en kommando eller streng kommandoer for et gitt program, avslutter du blokken med "sluttfortelling".

Husk alltid å avslutte dine fortellende blokker på riktig måte, eller koden vil ikke kompilere!

Når du er ferdig med å skrive inn koden ovenfor, klikker du på "Kompilere" hammerikonet. Hvis syntaxen din er riktig, formateres koden automatisk og farger. Hvis du har gjort en feil, vil Script Editor markere det problematiske området og gi deg en melding om hva den mener kan ha gått galt. Her er en rask referanse til de forskjellige fargene du vil se i din kompilerte kode (funnet i Skriptredigerer> Innstillinger).


Fargeguide

Etter at koden din har samlet, klikker du på "Kjør" -knappen. Du bør se følgende dialog:


Hei Verden

Klikk nå på "OK" -knappen og se på bunnen av Script Editor-vinduet. Når du kjører et script, forteller Script Editor deg hva resultatet var, eller hva var "returnert". I dette tilfellet forteller du at "OK" -knappen ble klikket.


OK Retur

Deklarere Variabler

Variabler er i det vesentlige det samme i alle programmeringsspråk. De gir en enkel måte å få tilgang til og manipulere mye informasjon i en kompakt kodebit. Å skape eller "deklarere" variabler er forskjellig for hvert språk. I AppleScript erklærer du variabler som følger:

[Apple]
sett theString til "Hello World"

Fortell søknad "Finder"

vis dialogboksen theString

slutt tell
[/ Apple]

Det er flere ting å merke seg om forrige eksempel. Merk først at variabler er deklarert ved å bruke "set" og "to" kommandoer. Ved å gjøre dette setter du inn variabelenavnet ditt, i dette tilfellet "theString", for å likne noe, i dette tilfellet teksten "Hello World". Mange programmeringsspråk krever at du oppgir hvilken type variabel du vil ha i erklæringen (heltall, flytpunkt, tekst, etc.). AppleScript er imidlertid intelligent nok til å jobbe med variablene dine uten instruksjoner om formatet.

Legg også merke til hvordan jeg skrev inn variabelnavnet mitt. Du kan ikke ha mellomrom i et variabelt navn, så det er god praksis å bruke kamel-saken (theString) eller understrekingsmetoden (the_string). Det spiller ingen rolle hvilken metode du velger, bare sørg for at du er konsekvent gjennom hele koden din. Det er også en god ide å gi alle variablene dine meningsfulle navn. Når du ser en annen programmers kode, kan det være irriterende å se variable navn som "myVariable" som ikke gir noen indikasjon på hva de er eller hva de vil bli brukt til.

Til slutt, legg merke til at nå at jeg har plassert teksten "Hello World" i en variabel, kan jeg ringe den variabelen igjen og igjen gjennom hele koden min. Så hvis jeg senere bestemmer meg for å endre teksten "Hello World" til "Good Morning Dave", må jeg bare endre teksten på linjen der jeg erklærte variabelen.


Arbeide med variabler

Du kan gjøre alle slags gale ting med variabler, men siden dette bare er ment å være en kort introduksjon til AppleScript, vil jeg bare vise deg noen. Skriv inn følgende kode:

[Apple]
--Integervariabler
sett theFirstNumber til 3
sett theSecondNumber til 2

--Variabel drift
sett svaret til (theFirstNumber + theSecondNumber)
sett answeren til (theAnswer + 1)

--Strengevariabler
sett theString til "3 + 2 + 1 ="

--Display Dialog
Fortell søknad "Finder"

vis dialogboksen theString & theAnswer

slutt tell
[/ Apple]

Du kan kompilere koden raskt ved å trykke på "enter" -tasten (ikke returknappen). Dette er plassert på de ti nøkkelnumrene på stasjonære datamaskiner og ved siden av "Command" -tasten til høyre for mellomromstasten på bærbare datamaskiner.

Ettersom skriptet blir mer komplekst, er litt organisasjon i orden. Ved å skrive to bindestreker "-" før en tekstlinje, kan du legge inn en kommentar. Bruk kommentarer til å skille og beskrive kodekodene dine for enkel navigering. I dette eksemplet har jeg opprettet en strengvariabel (bare tekst) og noen få heltallvariabler. Legg merke til at du kan utføre matematiske operasjoner på variabler. Her har jeg satt "theFirstNumber" til lik tre og "TheSecondNumber" til lik to og deretter lagt dem sammen i "theAnswer".

Vær også oppmerksom på at du kan endre en variabel etter at den er erklært. Umiddelbart etter å ha satt "theAnswer" til summen av "theFirstNumber" og "theSecondNumber" (resulterende i 5), endret jeg verdien av "theAnswer" ved å legge til en til den (resulterende i 6). Hvis du kjører dette skriptet, bør du se følgende resultat:


Noen grunnleggende matematikk

Igjen, dette skraper bare overflaten av typer operasjoner du kan utføre på variabler. For nå bør du bare forstå at en variabel ikke er statisk. Mye av kraften bak et hvilket som helst programmeringsspråk er evnen til å manipulere variabler for å utføre et stort antall oppgaver.


Nøkkelen til det hele: AppleScript-ordbøker

Selv om AppleScript selv har et bredt spekter av kommandoer som kan brukes til ethvert program eller element i OS X, er utviklerne av hver applikasjon opptatt av å legge til full AppleScript-støtte for sine apper. Hva dette betyr er at utviklere må skrive enkle manualer for hvordan man kommuniserer med sine applikasjoner gjennom AppleScript. Disse håndbøkene kalles "Ordbøker". For å vise en ordbok, gå til File> Open Dictionary i Script Editor. Rull ned listen over programmer, klikk på Mail og klikk "OK". Du bør se følgende vindu:


Postordboken

Kolonnen til venstre inneholder de tilgjengelige "suiter" av kommandoer og elementer. Når du klikker på en pakke, ser du alt som finnes i pakken som vises nedenfor. Du kan begrense denne forhåndsvisningen ved å klikke i den andre kolonnen, og deretter igjen i den tredje. Suiter inneholder kommandoer (C med en sirkel) og klasser (C med firkant), klasser inneholder egenskaper (P) og elementer (E). For å forstå hvordan alt dette fungerer, la oss bruke denne ordlisten til å lage et skript.


Trinn 1: Opprett en algoritme for vårt script

Først trenger vi en algoritme, som er en fancy måte å si at vi trenger å skrive ned nøyaktig hva vårt skript vil gjøre. Vi ønsker å lage et skript for å komponere og sende en e-post. Vi vil bruke variabler for å gjøre det enkelt å endre meldingen selv, og hvem meldingen sendes til. Når vi skriver vår algoritme, må vi huske hvordan AppleScript fungerer. Her er trinnene jeg kom opp med:

  1. Opprett variabler for mottakeren, mottakerens e-postadresse, emnet for e-postadressen og teksten for e-postens kropp.
  2. Lag en variabel som holder vår nye melding sammen med sine ulike egenskaper
  3. Opprett den nye meldingen
  4. Send den nye meldingen

Trinn 2: Opprett noen variabler

Vi vet allerede hvordan du lager variabler som inneholder tekst, slik at vi ikke en gang trenger ordboken for trinn ett. Slik ser koden ut:

[Apple]
--variabler
sett mottakernavn til "John Doe"
sett mottakerAdress til "[email protected]"
sett theSubject til "AppleScript Automated Email"
sett innholdet til "Denne e-posten ble opprettet og sendt ved hjelp av AppleScript!"
[/ Apple]

Som du kan se, har vi bare satt plassholdertekst inn i variablene for navn og e-postadresse til mottakeren, i tillegg til emnet og innholdet i meldingen vår. Du kan endre disse til alt du vil. Sørg for å sette din egen e-postadresse i mottakerAddress-variabelen, slik at du kan sikre at skriptet fungerer riktig når du mottar e-postadressen.


Trinn 3: Lag meldingsvariabelen med postordboken

Siden vi ikke har noen anelse om hvordan å fortelle Mail for å opprette en ny melding, er dette her vi trenger å referere til AppleScript-ordlisten. Hvis du klikker på "Standard Suite", ser du flere vanlige kommandoer som kommer som standard i AppleScript. Å vite at vi vil "skape" en ny melding, vi blar bare gjennom alternativene og finner noe tilsvarende. Du vil se at det ikke er noen "skape" kommando, men omtrent halvveis der er en "make" -kommando. Det høres perfekt ut, så vi vet nå for å fortelle AppleScript at vi vil "lage" noe.

Neste klikk på "Mail" -pakken. Vi har allerede fått vår kommando (make), så rul ned forbi kommandoene (verbene) til du ser klassene (substantiver). Første klasse vi kommer over er "utgående melding", noe som er bra fordi det er akkurat det vi vil ha! Klikk nå på utgående meldingen og se på de tilgjengelige egenskapene nedenfor.

Vi må plugge inn våre variabler for mottakerens navn, mottakerens e-postadresse, emnet og innholdet i meldingen. I listen over egenskaper er det ikke noe om mottakeren, men det er egenskaper for emne og innhold. Vi vet nå riktig syntaks for å referere til disse egenskapene. Legg merke til at ordboken gir deg formatet for å definere egenskapene. For eksempel for emnet skriver vi ordet "emne" etterfulgt av et kolon etterfulgt av emnetes tekst.


Emneinnhold

Også i denne pakken finner du en "send" -kommando, som vi kan bruke til å sende meldingen ved å bare skrive "send". Vi trenger fortsatt å vite riktig syntaks for mottakerens navn og e-postadresse. Siden det ikke er i denne pakken, klikker du på "Melding" -serien. Omtrent halvveis ned på listen over klasser finner vi "mottaker". Klikk på mottakerklassen, og vi ser at vi igjen kan bruke vanlig engelsk for å referere til mottakerens egenskaper. Vi skal bare skrive "navn" og "adresse".

Du kan bruke søkefunksjonen til å jakte på egenskaper, klasser, elementer og kommandoer raskt.

Nå er vi klare til å lage vår meldingsvariabel ved hjelp av syntaksen vi nettopp har lært. Slik ser koden ut:

[Apple]
--variabler
sett mottakernavn til "John Doe"
sett mottakerAdress til "[email protected]"
sett theSubject til "AppleScript Automated Email"
sett innholdet til "Denne e-posten ble opprettet og sendt ved hjelp av AppleScript!"

--Mail Fortell blokkering
Fortell søknad "Mail"

--Lag meldingen
sett theMessage for å lage ny utgående melding med egenskaper subject: theSubject, content: theContent, visible: true

slutt tell
[/ Apple]

Legg merke til at jeg har opprettet en fortellingsblokk for å legge alle kommandoene til Mail-applikasjonen. Deretter setter jeg en variabel (theMessage) for å "lage" en ny "utgående melding" med egenskapene som er omtalt ovenfor. Legg også merke til at sett med egenskaper alltid finnes i parentes .


Trinn 4: Still mottaker og send meldingen

Nå som vi har opprettet vår meldingsvariabel, må vi ringe den variabelen og opprette en ny melding med egenskapene til theMessage. Vi må også sette mottakerne og sende meldingen. For å gjøre dette bruker vi en fortellingsblokk på vår variabel. Her er vårt ferdige skript.

[Apple]
--variabler
sett mottakernavn til "John Doe"
sett mottakerAdress til "[email protected]"
sett theSubject til "AppleScript Automated Email"
sett innholdet til "Denne e-posten ble opprettet og sendt ved hjelp av AppleScript!"

--Mail Fortell blokkering
Fortell søknad "Mail"

--Lag meldingen
sett theMessage for å lage ny utgående melding med egenskaper subject: theSubject, content: theContent, visible: true

--Sett en mottaker
fortell theMessage
Gjør ny til mottaker med egenskaper navn: mottakernavn, adresse: mottakerAddress

--Send meldingen
sende

slutt tell
slutt tell
[/ Apple]

Først opprettet vi en ny kopi av MESSAGE (som arver alle egenskapene vi har satt inn i den) og setter den "til mottaker med egenskaper". Dette forteller Mail at vi vil legge til en mottaker med følgende egenskaper. Her brukte vi nettopp syntaksen vi lærte før, og variablene for mottakerens navn og adresse.

Til slutt påkalte vi "send" -kommandoen for å sende meldingen vår. Legg merke til at vi har to fortell blokker for å lukke denne gangen. Når du har kompilert koden din og fikset eventuelle feil, trykk "Kjør". Meldingen skal automatisk opprette og sende meldingen. Tadaah! Sjekk din sendte mappe for å sikre at alt fungerte.


E-postmelding

Gratulerer, du har laget din første AppleScript! Du kan lagre det som et enkelt skript som du kan komme tilbake og redigere eller som et program som kjører automatisk når du åpner det.


Konklusjon: Fortsett å lære

Jeg håper denne nybegynners guide har tenkt på alle slags prosesser og oppgaver du vil automatisere. Syntaxen jeg har vist deg sammen med AppleScript-ordbøkene, gir deg en lang vei. Men hvis du virkelig er interessert i å implementere AppleScript på en rekke nyttige måter, har du mer lesing å gjøre. Apple gir mye informasjon om AppleScript på deres hjemmeside. Her er et godt sted å starte.

Et annet nettsted jeg har hentet mye fra, er T & B. Det gir noen virkelig grundige forklaringer og veiledninger for deg å følge (litt datert, men grundig og gratis). Vær så velkommen til å legge igjen en kommentar og gi oss beskjed hvis du fant denne opplæringen nyttig! Hvilke andre AppleScript-tips vil du gjerne se dekket i fremtiden?