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

Ordliste vis/skjul 
pliste
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 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: 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.

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

FotnoterRediger


Siteringsfeil: <ref>-merker finnes for gruppenavnet «n», men ingen <references group="n"/>-merking ble funnet