avancerede applescript teknikker,,,,, vi tidligere har tilbudt en indføring applescript, og denne artikel vil omfatte en række nyttige applescript tips og tricks til at hjælpe dig med at skabe nogle utroligt avancerede manuskripter.,,,,,, dette er en del af en række stillinger, der tager nogle af vore læsere favorit tutorials fra fortiden der stadig indeholder fedt og relevante oplysninger, som de måtte finde nyttige.denne post blev offentliggjort den 24. september 2009,.,,,,, gør dit hjemmearbejde, dette er det tredje artikel i min serie om automatisering.husk at tjekke min begynder retningslinjer for både applescript og automator for at få et bedre kendskab til scripting og automatisering i almindelighed. i disse artikler, jeg dækker grundlæggende funktioner som f.eks. variabler, som jeg ikke vil tale om at reducere redundans.efter du har kendt dig selv med grundlæggende applescript, vil du være klar til at springe i de gode ting.lad os komme i gang!,, hvis, og hvis andet, "hvis" og "hvis" udtalelser anvendes, når du har en bestemt kommando eller sæt af befaler dig at have manuskriptet til at udføre, hvis de anførte krav er opfyldt. f.eks. siger, at du vil have det til at fortælle dig det, hvis værdien af de to variabler, x og y, der er lig med eller anderledes.vil du bruge et "hvis" erklæring til at fortælle det, hvordan man skal reagere på hver enkelt situation. der er kun tre muligheder: x er større end y, y er større end x, x = y. lad os begynde med en grundlæggende "hvis" erklæring og gøre det mere kompliceret, da vi går langs. [applescript], - - erklærer variabler, x - 5, y - 78, - - løber, hvis udtalelse, hvis x < og så vende tilbage og quot; ja ", hvis [/applescript], her jeg først erklæret to variabler og værdier, der tildeles til hver.så jeg fortalte manuskript redaktør tilbage "ja" hvis x er større end y meddelelse strukturen af "hvis" erklæring er meget gerne fortælle blok.du skal ende hver "hvis" udtalelse ", hvis" eller din kode ikke vil udarbejde.,, du stopper alle "hvis" udtalelse ", hvis" eller din kode ikke vil udarbejde, er den grundlæggende struktur af denne erklæring er følgende: hvis en given erklæring), er sandt, - så gør følgende.vær sikker på at medtage den erklæring, der skal testes, og "og" på samme linje som "hvis", så dine instrukser om den næste linje (r) før at blokere.hvis du samle og løbe den erklæring ovenfor, manuskript redaktør bør vende tilbage til "ja", der angiver, at x er mindre end dig, hvis x var større end y, vil der ikke ske noget, for vi har ikke programmeret til det uforudsete.lad os prøve noget lidt mere kompleks., [applescript], - - erklærer variabler, der er x til 78, y - 5 - - løber, hvis udtalelse, hvis x < og så vende tilbage og quot; ja ", ellers vender tilbage " nr. ", hvis [/applescript], her har vi medtaget en "anden" erklæring, der fortæller manuskript redaktør, hvad de skal gøre, hvis den oprindelige betinget angivelse, er falsk.strukturen er som følger: hvis en given erklæring), er sandt, udføre aktion en, ellers udføre aktion b. det er nok for mange situationer, men vi har endnu ikke skabt en nødplan for vores tredje situation: x = y. for at opnå dette skal vi bruge "andre, hvis." [applescript] - erklærer variabler, x - 5, fastsat til 5, - - løber, hvis udtalelse, hvis x < og så vende tilbage og quot; x er mindre end y " andre, hvis x > og så vende tilbage og quot; x er større end y ",,, tilbage " x er lig med y ", hvis [/applescript], her har vi tilladt for alle tre forskellige scenarier.dette manuskript skal vende tilbage "x er lig med y." meddelelse sidste scenario kræver kun en "anden" i stedet for "andre, hvis." det er, fordi hvis de første to udtalelser er falsk, det skal være sådan, at x = y (undtagen input fejl), booleans, tildele en sandhed, værdi for en variabel, der er let.bare sæt den variabel, sand eller falsk., [applescript] er der fastsat theboolean falske, hvis theboolean = sandt - - tilbage " det er sandt!", ellers vender tilbage ". det er bare ikke sandt ", hvis [/applescript], for nu ved, at det er så let.vi vil se en mere praktisk anvendelse i det sidste eksempel,.,, der har en dialog kasse, applescript gør det ligetil at vise output til brugeren.bare skriv følgende: [applescript], vise dialog ", vær hilset!" [/applescript], bør udarbejde en enkelt vindue med din velkomst og to knapper: "tilbagekalde" og "okay". det er også muligt at skræddersy de knapper med følgende kode: [applescript], vise dialog ". hvordan har du det?" knapper {" store ", " forfærdelige ", " ingen af din virksomhed."} misligholdelse knap 3 [/applescript] er der tre sektioner til denne kodeks.første del viser en dialog kasse med teksten "hvordan har du det?"det andet punkt er bestemmende for, hvor mange knapper dialogen har, og hvad de vil sige.i dette tilfælde har vi tre knapper.meddelelse af knapper er indkapslet i parentes og hver knap indkapslet i anførselstegn.,, bemærker den række knapper, skal være anbragt i parentes og hver knap indkapslet i anførselstegn.,,,, der er dialog, og endelig den tredje afdeling fortæller den dialog, hvad misligholdelse skal være.om fastsættelse af misligholdelse knap 3 belyser den tredje knap, hvor dialogen er vist. med en dialog med flere knapper er stor, men det er ikke godt, hvis du ikke ved, hvordan man bruger det input, der er kommet fra brugeren som følge heraf.lad os tage, hvad vi har lært om dialoger og kombinere det med et "hvis" erklæring for at se, hvordan vi kan bruge dialoger for at fortsætte...tja...dialog., [applescript], - - at skabe en dialog med tre knapper, display dialog ". hvordan har du det?" knapper {" store ", " forfærdelige ", " ingen af din virksomhed."} misligholdelse knap 1, hvis brugeren er stor, hvis resultat = (knap tilbage: " store "}, display dialog " fremragende, fortsæt god sir ", - - hvis brugeren er forfærdelig, andre, hvis resultat = (knap tilbage: " forfærdeligt "}, display dialog ". du har brug for at muntre dig op.", - - hvis brugeren er et fjols, ellers vise dialog ". undskyld mig, kammerat!", hvis [/applescript], som du kan se, er den første linje kode er taget direkte fra eksemplet ovenfor.den næste del, bruger et "hvis" erklæring til at håndtere hver knap presse.syntaksen er i bund og grund: hvis brugeren trykker på knappen x, så gør en anden aktion, hvis brugeren trykker på knappen, så gør aktion b, anden aktion c, hvis brugeren trykker på knappen x, så gør en anden aktion, hvis brugeren trykker på knappen, så gør aktion b, anden aktion c.,,,,,,, der modtager tekst input fra en bruger, der undertiden er en simpel "er ikke nok.jeg ofte skriver manuskripter, der kræver, at brugeren input tekst.for at opnå det, vi bruger en dialog kasse som ovenfor, med en lidt anden syntaks., [applescript] - display - dialog og få input, display dialog ". hvordan har du det?" manglende svar ", fortæl mig hvordan du føler ", - - få svar & tilbage bemærkning, der blev svaret på (tekst tilbage af resultatet), display dialog " jeg er glad for, at du er så " & svaret, [/applescript], ved at "default" i vores kode, siger vi, at vi ønsker, at brugeren appescript input tekst som svar.vi så en variabel til teksten tilbage af brugeren.så kan vi bruge det variable, hvor vi ønsker at bruge input.,,, der modtager tekst input fra en bruger, håndtering af fejl: prøv blok, at lade brugerne indlæse data er farlig.hvis du leder efter et meget konkret svar eller type af data, kan de være sikker på din brugere vil ødelægge det, og fordi en fejl.,, hvis du er ude efter en meget konkret svar eller type af data, kan de være sikker på din brugere vil ødelægge det, og fordi en fejl, af denne grund. du er nødt til at filtrere, hvad der kommer fra brugeren til at sørge for, at det er præcis den form for input, du vil have.for det, vi bruger en prøve blok, og et par "hvis" udtalelser., [applescript] - display - dialog og få input, display dialog ". vælg et nummer 1 - 10 " manglende svar " kun indgå tal mindre end 11!", - test for ugyldig tegn, prøve, der blev svaret på (tekst tilbage af resultater) nummer på fejl, display dialog " ugyldig input " tilbage, prøver, - - test for korrekte tal, hvis svaret < 1, som ministeren til 0, andre, hvis svaret < 11 -, ministeren for 1, andet sæt ministeren til 0, hvis, - - vender bemærkninger til brugeren, hvis ministeren = 0, display dialog " ugyldig input ", ellers vise dialog ". du valgte nummer " & svaret. hvis [/applescript], kode ovenfor er kompliceret, så lad os bryde det ned.første afsnit kun udviser en dialog, og anmoder om, at brugeren vælge et nummer.men vi vil kun acceptere numrene 1 til 10.hvis der ellers er optaget, vil vi fortælle brugeren input er ugyldig., andet afsnit, hvor vi teste, om ikke - tal var opført som bogstaver eller symboler.en prøve blok giver os mulighed for at fortælle applescript at forsøge at gennemføre kodeksen, og se, hvad der sker.,, en prøve blok giver os mulighed for at fortælle applescript at forsøge at gennemføre kodeksen, og se, hvad der sker.,, vi har fortalt applescript at forsøge at tage teksten tilbage af brugeren, og gøre det til et nummer.hvis der ikke var nogen prøver at blokere og vi gennemførte denne kommando, det ville smide en fejl og stoppe programmet, hvis brugeren opført et brev eller symbol. det prøver at blokere giver os mulighed for at give applescript en særlig ordre, hvis en fejl er kastet.i dette tilfælde har vi nu udviser en "ugyldig input" dialog, hvis en fejl er kastet.vi så kommando manuskriptet til afslutning ved at "vende tilbage." se en prøve blok skal ende med "den endelige prøve" kommando. når programmering, du skal altid tage alle mulige fejl, at deres brugere kan gøre og skabe mulighed for det.prøv at kode ovenfor og ind i et par invalide personer.kan du se, at uanset hvad du ind, manuskript kun accepterer nummer 1 - 10, når programmering, du skal altid tage alle mulige fejl, at deres brugere kan gøre og skabe mulighed for det.,,, som, på samme måde som variabler butik af oplysninger i en lille stump kode, deres (ofte kaldet funktioner i andre programmeringssprog) er en god måde at gennemføre en lang række kommandoer gentagne gange med meget lille kode. ved lagring af flere ordrer i en snippet, du redder dig masser af programmeringen og forenkle deres kode.her er et eksempel: [applescript] - definere kontakt, på additionhandler (thevariable), x - 5, fastsat til 5, at x + y z + thevariable, display dialog " 10 + " & thevariable & " = " og amp; z, additionhandler, - - løber kontaktperson, additionhandler (8), - - løber kontakt igen, fastsætte antallet til 145, additionhandler (91) [/applescript], syntaks for definitionen af en kontaktperson: handlername (variabel), efterfulgt af den ordre, der skal udføres, efterfulgt af "slut handlername." denne variabel i parentes (thevariable) er den del, som vi skal definere, hver gang vi møder den kontaktperson.den første del af kode i sig selv vil gøre noget, fordi vi har endnu ikke løbe den kontaktperson, kun defineret det. se, når vi løber den kontakt, vi type førerens navn, efterfulgt af et tal i parentes.det handler nu vil tage dette nummer og stik det ind i noget, vi har skrevet "thevariable" i vores kontaktperson definition. i dette tilfælde vil det sætte valgt variabel til z og tilføje det til x (5) og y (5) og udviser en dialog med svaret.så additionhandler (8) indeholder z - 8, og så tilføjer 10 (5 + 5) og giver os resultatet af 18.når vi kører ikke igen samme kode er gennemført på et andet nummer. jeg gjorde det for at vise, at man kan definere en variabel andetsteds, og sæt den i din kontaktperson.vi har fastsat antallet til 145 og så løb den kontaktperson på antallet., konstaterer, at de variabler, der er defineret i en kontaktperson ikke eksisterer uden for handling.så hvis du sluttede det manuskript med "returner z" ville du få en fejl, der siger, at "z" er ikke defineret, skal du sørge for at give alle variabler beskrivende og enestående navne, betyder det, at du kan, teknisk set, anvende identiske variable navne for variabler, der er defineret i og uden for en kontaktperson.dette er imidlertid for rodet og forvirrende kode og bør undgås.bare vær sikker på, at alle variabler beskrivende og enestående navne.,, jeg gentager, blokke, er det ofte sådan, at du vil finde det nødvendigt at skabe et skridt i dit manuskript, der gentager et bestemt antal gange, i applescript gør vi sløjfer med gentagne blokke.,, mange programmeringssprog, kalder det en loop.i applescript gør vi sløjfer med gentagne blokke.gentager, blokke er ret enkel og alsidig, her er et simpelt eksempel: [applescript], fastsætte antallet til 5, gentage antallet gange, display dialog " er det ikke irriterende?", gentager, [/applescript], her har vi skabt en dialog kasse og det gentager fem gange i træk.dette eksempel, men ubrugelig, viser dig, hvor let det er at skabe gentage trin. imidlertid ikke altid vide, hvor mange gange du ønsker et givet trin til at gentage.det er ofte nødvendigt at gentage et skridt eller række af skridt, mens en vis tilstand er stadig sandt.i disse tilfælde anvender vi en "gentager, mens" blok., [applescript], fastsætte antallet til 1, gentager, mens (antallet < 2) display dialog " spille igen?" knapper {" ja ", " nr. "} misligholdelse knap 1, hvis resultat = (knap tilbage: " ja "}, display dialog ", indsæt flere kvartaler." knapper {". ok "} misligholdelse knap 1, anden udstilling dialog ". farvel!" misligholdelse knap 2, fastsættes antallet af (antallet + 1), hvis, gentager, [/applescript], her har vi arrangeret den dialog, der gentager, medens antallet er mindre end 2.hvis brugeren siger, at de ønsker at spille igen, får de en besked til at indsætte flere kvartaler og dialogen gentager. så længe brugeren hele tiden rammer - dialogen bliver ved med at gentage.når brugeren udvælger "nej", tilføjer vi et at antallet fastsættes værdien til to.det ser ud til, at sandheden krav er blevet falsk, og ophører med at gentage aktionen.,, at det alt sammen, snarere end at efterlade dig med flere stykker af usammenhængende kode, jeg troede, det ville være bedst at give et sidste eksempel, at alt, hvad vi har lært.lad os tage "vælg et nummer" eksempel ovenfor og kød ud til et fuldt samarbejde manuskript., [applescript]..., der er tilfældigt tal, der randomnumber til tilfældige tal fra 1 til 10, - - boolean til test, hvis det manuskript skal gentages, repeattest sand, hvis resultat er en række ændringer sand og se, om de er mellem 1 og 10, der er testnumbers falske, - - hvis følge passerer alle tidligere forsøg, er det korrekt?, der er winningtest falske, - - tæller antallet af bud, der er trycount - 0 - generiske dialog fører, på dialogbox (budskabet) display dialog budskabet, dialogbox, - - gentager, hvis alle prøver er ikke, jeg gentager, mens (repeattest = sand) - display dialog & få resultat, display dialog " og vælg et tal på 1 - 10 " manglende svar ", anføres kun tal 1 - 10 " misligholdelse knap 2, der blev svaret på (tekst tilbage af resultatet), - - er at følge et nummer?prøver, der er svaret på svaret som nummer, der testnumbers sand, om fejl, dialogbox (" ugyldig input "), prøver, - - er at følge mellem 1 og 10.hvis (testnumbers = sand), - test for korrekte tal, hvis svaret < 1, dialogbox (" ugyldig input "), andre, hvis svaret < 11, der repeattest falske, der winningtest sand, ellers dialogbox (" ugyldig input "), hvis, hvis, - - er at følge den korrekte svar?hvis winningtest = sandt, hvis svaret = randomnumber, dialogbox (", du gættede det i " & trycount & " prøver!"), andet, dialogbox (", prøv igen!"), der blev repeattest til sande, sæt trycount til trycount + 1, hvis, hvis, gentager, [/applescript], ved første øjekast manuskriptet kan virke skræmmende.hvis du har været igennem alle de ovenstående eksempler, det bør give perfekt mening,.,, trin 1: erklærer din variabler, for det første, vi erklærer os variabler, for det meste boolean på dette punkt.så skaber vi en kontaktperson (dialogbox) til at vise vores forskellige dialoger i manuskriptet.brugeren er bedt om at vælge et tal mellem 1 og 10.svaret er så løbe igennem tre separate prøvninger,.,, trin 2:, tjek det input, så vi teste, om input indeholder bogstaver eller symboler.så vi test for at se, om de mange tilbage af brugeren i acceptabelt interval (1 - 10), trin 3: giver input til tilfældige tal?endelig vil vi prøve at se, om brugeren ved matcher vilkårligt nummer, der genereres af manuskriptet. ved hjælp af booleans og, hvis udtalelser manuskriptet er struktureret på en sådan måde, at hver på hinanden følgende test er kun løbe, hvis det input, går den foregående prøve.hvis en test resultater falske, gentager blok begynder igen, og følgende handlinger, ikke løbe., russisk, meddelelse om, at det faktisk er muligt at rede, hvis udtalelser, inden for hvis udtalelser.det er sandt, gentages, blokke og fortælle blokke som godt.vær forsigtig, men for at anvende indlejrede erklæringer for.en eller to lag er ikke dårlig, men alt andet bliver rodet og svært at følge med. at det manuskript skal vælge et nummer og holde ud, indtil du gør det rigtigt.lege med det et par gange, og se, hvor mange tror, det tager dig til at få det rigtigt.,, konkludere, at denne artikel er gået dig igennem med, hvis udtalelser, booleans, dialog kasser, brugerinput, der håndterer fejl som, og jeg gentager, blokke. nu skal de være i stand til at skabe en virkelig fin manuskripter, der skal automatisere de hårdeste arbejdsgange.bare vente på denne side, og bruge det som en snyde ark for dine fremtidige manuskripter, som nævnt ovenfor, er den tredje rate i min serie om automatisering.din feedback, er meget vigtige i at beslutte, hvad jeg skriver om, så lad mig vide, hvis du vil have mig til at holde dem på vej.hvis efterspørgslen er stor nok, vil jeg gerne skrive mere.,
avancerede applescript teknikker
Next Page:hurtig tip: kender safari 6