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 ListRediger

engelsk kalles her
plist pliste
record oppføring
dictionary lagrede oppføringer

En fil med filendelsen .plist er et tilpasset xml-format kalt Property List. Heretter kalles den bare Pliste. En pliste kan lagre det samme innholdet som datatypen record i AppleScript. Enhver xml-fil er hiearkisk oppbygget, med ett rotelement. I dette tilfellet er rotelementet <plist> og det inneholder elementet <dict/>. Det sistnevnte elementet har navn etter det engelske ordet dictionary, en samling av oppføringer.

Tom plisteRediger

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>

DatatyperRediger

datatype xml-element
booleean <true/> eller <false/>
date <date></date>
number <integer></integer>
list <array></array>
record <dict></dict>
string <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.

booleeanRediger

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 -->

dateRediger

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 -->


listRediger

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 -->


numberRediger

<!-- innenfor det øverste dict-elementet -->
   <key>nummerNavn</key>
   <integer>4</integer>
<!-- innenfor det øverste dict-elementet -->


recordRediger

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 -->


stringRediger

<!-- innenfor det øverste dict-elementet -->
   <key>tekstNavn</key>
   <string>eksempel på tekst</string>
<!-- innenfor det øverste dict-elementet -->