MacOS – Tips og triks/AppleScript
AppleScript er Apples eget skriptspråk som kan brukes for å automatisere oppgaver på macOS plattformen. Her er noen enkle skript som utfører viktige funksjoner.
Property List
[rediger]- Oversatt fra plist, en forkortelse for property list. Enhver fil med filendelsen .plist er en pliste. Det er en liste over egenskaper i et tilpasset xml-format som tilsvarer datatypen record i applescript. Hver egenskap gis en etikett innenfor taggen <key> og en verdi med en av de tillatte datatypene.
En fil med filendelsen .plist er et tilpasset xml-format kalt Property List.[n 1] En pliste kan lagre det samme innholdet som datatypen record i AppleScript. Enhver xml-fil er hiearkisk oppbygget, med ett rotelement. I en pliste er rotelementet <plist>. Rotelementet kan inneholde elementer av datatypene <dict> eller <array>.[n 2]
For å kunne arbeide med oppføringene i plisten gjør man følgende:
tell application "system events"
set propertyListFile to property list file "disknavn:Users:brukernavn:filbane:filnavn"
tell property list items of propertyListFile
(*
her kommer koden
*)
end tell
end tell
Tom pliste
[rediger]En tom pliste ser slik ut:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- innholdet vil komme her -->
</dict>
</plist>
Datatyper
[rediger]datatype | xml-element |
---|---|
booleean: boolsk verdi | <true/> eller <false/> |
date: dato | <date></date> |
number: heltall | <integer></integer> |
list: liste | <array></array> |
record: oppføring | <dict></dict> |
string: tekst | <string></string> |
Som du kan se åpnes eller innledes de lagrede oppføringene med taggen <dict> og avsluttes eller lukkes med taggen </dict>. Innenfor denne taggen vil alt innholdet i en oppføring lagres.
Datatypene som kan benyttes i en oppføring er booleean, date, list, number, record og string. Hvis du fortsetter å lese finner du ett eksempel på hver datatype i et eksempel. De ville bli satt inn i plisten der hvor kommentaren vises i eksempelet på en tom pliste. <key></key> er navnet på verdien du lagrer i listen. Hvilket navn er valgfritt, og vil vanligvis tilsvare en eller annen variabel du ønsker å lagre til senere bruk.
booleean
[rediger]I dette eksempelet kan du merke deg at verdien er et tomt xml-element med navnet true eller false.
<!-- innenfor det øverste dict-elementet -->
<key>boolskNavn</key>
<true/>
<key>etBolskNavnTil</key>
<false/>
<!-- innenfor det øverste dict-elementet -->
date
[rediger]Her er datoformatet nødvendig å merke seg. Det er i formatet yyyy-mm-ddThh:mm:ssZ. T skille datoen fra klokkeslettet og Z angir tidssonen eller UTC.
<!-- innenfor det øverste dict-elementet -->
<key>datoNavn</key>
<date>2021-09-30T10:27:00Z</date>
<!-- innenfor det øverste dict-elementet -->
list
[rediger]Lister kan inneholde alle andre elementer. Men i motsetning til en oppføring kan de ikke navngi hvert enkelt element. Legg merke til at det mangler key-element. I dette eksempelet er det satt inn et tomt liste-element (<array/>) og et tomt oppførings-element (<dict/>) i listen.
<!-- innenfor det øverste dict-elementet -->
<key>datoNavn</key>
<array>
<true/>
<false/>
<date>2021-09-30T10:27:00Z</date>
<array/>
<integer>4</integer>
<dict/>
<string>eksempel på tekst</string>
</array>
<!-- innenfor det øverste dict-elementet -->
number
[rediger]<!-- innenfor det øverste dict-elementet -->
<key>nummerNavn</key>
<integer>4</integer>
<!-- innenfor det øverste dict-elementet -->
record
[rediger]Akkurat som med en liste kan en oppføring inneholde alle andre datatyper. I dette eksempelet er det satt inn et tomt liste-element (<array/>) og et tomt oppførings-element (<dict/>) blant de lagrede oppføringene.
<!-- innenfor det øverste dict-elementet -->
<dict>
<key>boolskNavn</key>
<true/>
<key>etBolskNavnTil</key>
<false/>
<key>datoNavn</key>
<date>2021-09-30T10:27:00Z</date>
<array/>
<key>nummerNavn</key>
<integer>4</integer>
<dict/>
<key>tekstNavn</key>
<string>eksempel på tekst</string>
</dict>
<!-- innenfor det øverste dict-elementet -->
string
[rediger]<!-- innenfor det øverste dict-elementet -->
<key>tekstNavn</key>
<string>eksempel på tekst</string>
<!-- innenfor det øverste dict-elementet -->
Fotnoter
[rediger]
Siteringsfeil: <ref>
-merker finnes for gruppenavnet «n», men ingen <references group="n"/>
-merking ble funnet