Ce este AppleScript - o la școală

Nu puteți utiliza AppleScript? Nu știi ce este? Crezi că dacă nu aveți nevoie de ea? Sau, poate, amintirea lecțiilor de știință școală provoca alergie atac la simpla menționare a cuvântului „program“? Deci, ai făcut un lucru bun prin deschiderea acestui articol.

Din fericire, aceasta va ajuta la a face cu acest instrument foarte util, iar timpul petrecut pe citire, apoi să plătească cu generozitate.

Ce este AppleScript

Deseori, atunci când se lucrează cu un anumit program, avem de multe ori pentru a efectua aceleași acțiuni: apăsați aceleași taste pentru a selecta aceeași comandă din meniu, introduceți aceleași valori în casetele de dialog A fost apoi, și să vină în ajutorul AppleScript. Vom descrie succesiunea operațiilor noastre sub forma Programs- „script“, și a alerga - bea cafea în condiții de siguranță, aruncând o privire pentru a vedea dacă acesta din urmă este de peste tratament, 3780 dosar nouă. Ceva similar există sub forma unei DOS BAT-fișiere sau scripturi pentru shell (shell) UNIX. Dar AppleScript are un avantaj important: limba „înțeles“ ca Finder, precum și un număr mare de aplicații, și script-ul le poate accesa, la rândul său.

Limbajul pe care îl folosesc (el a numit, de asemenea, AppleScript), foarte aproape de simplu engleză. De exemplu, script-ul ar putea arata astfel:

Cred că toată lumea a înțeles ceea ce ar face. Dar, în scopul de a învăța cum să scrie script-uri proprii, este necesar să se înțeleagă unele concepte.

Obiecte, proprietăți, evenimente, ...

Aceleași obiecte (de exemplu, toate dosarele) formează o clasă (clase). Fiecare obiect are un anumit set de proprietăți (proprietăți), care se distinge de celelalte. De exemplu, fiecare fișier are un nume, etichetă, tip, data creării, versiunea, și mai mult de o duzină de caracteristici. Unele dintre ele se pot schimba script-ul, unele - doar pentru a citi.

O clasă (numit un „descendent“) poate moșteni proprietăți din altă clasă ( „părinte“). De exemplu, și foldere și fișiere au un strămoș comun - element (element).

Acum, ia în considerare exemplul nostru, adăugând un pic de ea:

Noi mai întâi comanda Finder, a crea un „dosar“ nouă clasă de obiecte, situat pe masă. O parte din proprietatea este setată în echipa (numele dosarului și eticheta de culoare), iar restul va fi atribuit la computer în mod implicit. Apoi Finder'u spune, că el a poruncit dosarul său (și numai în acest fel: „vasal vasal meu - nu vasalul meu“) pentru a deschide și de a schimba numele.

Dar este timpul pentru a merge la considerații teoretice la ceva mai tangibil. Este timpul pentru a începe Script Editor.

Ce este AppleScript - o la școală

Dicționare, vocabulare, dicționare ...

Programele Macintosh pot sprijini AppleScript pe trei niveluri diferite.
Scriptable - programul poate efectua comenzile descrise într-un script.
Înregistrabil - comenzile posibile înregistrările efectuate în program. Creați un script nou, executați de înregistrare ( «Înregistrare» buton), efectuează, de exemplu, în Finder pentru a manual acțiunile necesare, opriți înregistrarea ( «Oprire»). Asta e tot. Deci, este foarte convenabil de a face script-ul gol.
Atașabil - script poate fi rulat direct din program fiind „atașat“ la meniul sau orice alt obiect din fereastra. Exemple de astfel de programe: AppleWorks, Tex-Edit, FileMaker Pro.

Deschideți, de exemplu, dicționar Finder lui.

Ce este AppleScript - o la școală

Pe stânga vedeți o listă cu toate definite în „Termenii“. Notă: unele dintre ele sunt scrise cu caractere italice. Ea - obiecte. Tot restul - echipa. Dacă faceți clic pe cuvântul pe care doriți, puteți citi un scurt fundal.

Citește mai departe. «Pluralul: containere». forma plurală? Am făcut studia gramatica limbii engleze? Ei bine, da și nu. Am menționat deja că AppleScript este cât mai aproape de limbaj natural. Și dacă vrem să proceseze toate obiectele din această clasă, pe care-l scrie în jos, așa cum ar trebui să fie în limba engleză, puteți fie «fiecare container», sau «containere».

Ce este AppleScript - o la școală

După cum știți deja, obiectul poate conține alte obiecte. Ce fel și modul în care diferite unele de altele, este descrisă în următoarea secțiune a dicționarului - „Elemente» (elemente). Container cum vedeți pot conține obiecte cincisprezece clase diferite, de exemplu, alte recipiente, dosare, documente, fișiere de program, și așa mai departe. D. O listă de un anumit membru al unei clase poate fi numele (după nume), sau numărul de serie (de index numeric).

Ce este AppleScript - o la școală

Ei bine, în cele din urmă, ultima secțiune - „Proprietăți» (Proprietăți). Aici suntem, în primul rând, vom vedea că clasa „container“ - moștenitorul clasei „Element“ ( element [r / o]), adică are toate proprietățile sale. Dar există în această clasă, și câteva din propriile lor. Notă: unele dintre ele sunt marcate cu «[r / o]» (numai citire - read-only), aceste proprietăți schimba comanda AppleScript este imposibilă.

Ei bine, aici. Puteți încerca deja să scrie unele script simplu. Deci ...

Oh, creatorul!

Cred că știi că fiecare fișier de pe Macintosh are două caracteristici - codul de tip și creatorul, permițând Finder'u să decidă cum să se ocupe de acest fișier. Nu este nici un secret și că, de multe ori - de exemplu, după transmiterea prin Internet - aceste atribute sunt pierdute. Desigur, există mai multe programe care știu cum să le schimbe. Dar să încercăm să facă propria lor utilitate, folosind doar ceea ce este deja încorporată în Mac OS.

Să începem cu cea mai simplă opțiune. Să presupunem că dorim să dea letter.txt fișier, situat pe masă, selectați tipul de «TEXT» și cod creator «ttxt» (ProstoTekst).

Selectați dicționarul în fișierul obiect Finder. Găsiți proprietățile necesare: tip de fișier și tipul de creator. Pentru a modifica valoarea unei proprietăți, utilizați comanda «setraquo; (Set). Deci, întregul script ar trebui să arate ceva de genul asta:

Astfel, după cum puteți vedea, puteți fie să modificați fișierul comanda proprietățile (STI) (în acest exemplu, cuvântul «ei» poate fi omisă, care este, la numirea echipei clar definite și fără ea ..) Sau - Program Finder pentru a modifica proprietățile obiectului subordonat.

Nu sunt zadar pentru a indica faptul că fișierul este pe desktop. În caz contrar, avem nevoie de un „lanț“ lung obiecte subordonate (ceva de genul «spune aplicație«Finder»să-i spun pe disc«Macintosh HD»pentru a spune directorul«lecție»pentru a spune fișierul«letter.txt»»). Sau - pentru a doua versiune a scenariului - o indicație a modului completă. «Fișier«Macintosh HD: lecție: letter.txt»» (Dați-mi voie să vă reamintesc: modul în Mac OS scris de două puncte).

Ei bine, scenariul a fost scris. Acesta funcționează. dar să beneficieze de ea, spun doar nu - de fapt, pentru fiecare din fișierul următor trebuie să modificați textul script-ul. Wow, am simplificat de locuri de muncă! Ar fi necesar să se îmbunătățească programul nostru. Învățați-i să ceară utilizatorului cum să se ocupe de dosar. Deschideți Finder Dicționar, uita-te Aici cele de pe! Nimic adecvat. Dacă Apple a permis astfel de gafe? Nu este deloc ...

„Și nu ai același lucru, dar cu butoane perla?“

Script Deschideți Arhitectura (OSA - Deschis Script Architecture) vă permite să obțineți practic orice element esențial al limbajului. Desigur, dacă cineva deranjat să scrie un „supliment» (Scripting Adăugarea sau OSAX), care descrie un obiect, iar comenzile corespunzătoare. Aceste adaosuri sunt plasate în dosarul Scripting Adaosuri în System Folder (anterior - Extensii). Folosiți-le ca orice scenariu, indiferent de ce program este în prezent în comandă.

script-ul nostru va arata astfel:

programm Destul de eficient. Dar este posibil să se facă mai confortabil? De ce rula script-ul singur, apoi selectați numele fișierului în dialogul - nu este mai bine să utilizeze metoda Drag'n'Drop? Toate noastre cele mai bune!

Scrierea picăturii

Deci, ceea ce ne dorim și cum să-l atingă.

În cel mai simplu caz, se va arata astfel:

pe Filelist deschis - cuvântul «pe» pornește de tratare a evenimentelor
- primul script în sine funcționează fără a afecta orice programe
set FișierulMeu la punctul 1 din Filelist
spune aplicație «Finder» - Acum comanda Finder'om
Set tip de fișier de FișierulMeu la «TEXT»
set de tip creator de FișierulMeu la «ttxt»
se încheie spune-
capăt deschis - nu uitați să specificați că handler este încheiat

Pentru stocarea temporară a listei care le-am folosit Filelist variabilă. Variabilele de apel poate fi orice combinație de litere, dar este de dorit ca numele ar putea înțelege ce reprezintă variabila.

După cum puteți vedea, este procesat de către primul element al listei transmise atunci când scriptul este rulat. Și restul? Pentru ei, programul nostru este pur și simplu nu acordând o atenție. Nu este greu de ghicit ce următorul pas pe drumul spre perfecțiune este de a procesa imediat o grămadă de fișiere.

După ce, din nou, din nou ...

Până în prezent, toată echipa script-urilor sunt executate una câte una în ordinea scrisă. Acum trebuie să repete aceeași acțiune de mai multe ori. Va trebui să organizeze o structură specială - ciclul. În AppleScript au de a face o varietate de comenzi de control. Puteți repeta pașii numărul prescris de ori sau să le execute până când sunt îndeplinite anumite condiții. Dar aceste cicluri are aproape orice limbaj de programare. În sarcina noastră este perfect o alta - „se repetă pentru fiecare element din listă.“ Cu el script-ul ia forma următoare:

Ceea ce este încă lipsește în programul nostru de a deveni un profesionist pe deplin? Și nu este de ajuns „foarte simplu de manevrat“. Pentru „arunca“ pe imaginea de script-ul poate fi și foldere, și comenzi rapide, iar lucrul acesta a avut doar cu fișiere regulate.

Pe cine vrei, pentru a alege

Deci, trecând peste elementele listei, aveți nevoie pentru a determina ce este fiecare dintre ele. Numai dacă prins plat fișier - pentru a modifica proprietățile sale. Alegeți să facă sau să nu facă nici o operație permite o altă structură de control - o declarație condiționată, în cazul. Determina dacă obiectul este un dosar sau o etichetă, putem obține informații despre el «info pentru» echipa Standard Adăugări. Rezultatul este o clasă de «informații» fișier obiect. Asta este ceea ce proprietățile - „dosar» (Folder) și? „Eticheta» (Alias) - vom verifica. Pentru că avem nevoie de elementul nu a fost un dosar și nu a fost etichetat, cele două condiții ne asociem operarea logică «și» (atunci când este suficient ca una dintre condițiile - sau primul sau al doilea - se bucură de un pachet de «sau»). În general, aici este un script obținut ca rezultat al discuției noastre:

Nu uitați că trebuie să-l salvați ca o cerere (cerere). Ei bine, asta-i tot. Primul nostru program este gata.

Vă rugăm să rețineți că toate condițiile din declarația Dacă trebuie să fie scrise într-o singură linie. Pentru a face acest cod de program mai ușor de citit, este util să „stabilească“ un șir lung, așa cum se face în acest exemplu. Pentru a face acest lucru, apăsați combinația de taste «Option-returnare». Textul caracterului continuare apare - «¬».

Adăugați un comentariu

articole similare