Script editor mac os ��� ���

Содержание
  1. Script editor mac os ��� ���
  2. Our First Script
  3. A Word about Finder Windows
  4. Script editor mac os ��� ���
  5. Our First Script
  6. A Word about Finder Windows
  7. Основы AppleScript
  8. Приложение Script Editor
  9. AppleScript и объекты
  10. Что включено в script объект
  11. Свойства
  12. Элементы
  13. Объект спецификаторов
  14. Что внутри объекта спецификатора
  15. Контейнеры
  16. Абсолютные и относительные спецификаторы объекта
  17. Объект Спецификаторов в ссылочных объектах
  18. Приведение (преобразование объекта)
  19. Сценарии дополнений
  20. Обзор команд
  21. Типы команд
  22. Прямой параметр
  23. Параметры, определяющие расположение
  24. AppleScript Обработка ошибок
  25. Глобальные константы в AppleScript
  26. result
  27. Текстовые константы
  28. text item delimiters
  29. version
  30. current application
  31. missing value
  32. true, false
  33. Ключевые слова it и me
  34. Псевдонимы и файлы
  35. Указание путей
  36. Работа с псевдонимами
  37. Работа с файлами
  38. Удаленные приложения
  39. Включение удаленного приложения
  40. eppc-стиль спецификаторов
  41. Таргетинг удаленного приложения
  42. Отладка сценариев AppleScript
  43. Обратная связь от ваших сценариев
  44. Логинг

Script editor mac os ��� ���

Since this tutorial is very “hands-on,” we’ll be writing scripts right away. To write a script, you’ll use the Script Editor application installed in your system. You can find this application in the AppleScript folder located in the Applications folder on your computer’s main hard drive. Navigate to this folder now and double-click the Script Editor icon to launch the application.

NOTE: The following description and illustrations are for the Script Editor application included in Mac OSX 10.5. Earlier versions will have a different design.

The Script Editor application icon.

After starting up, the Script Editor application displays a multi-paned window known as a script window. This script window comprises two panes, the top pane containing the script text, and the bottom pane containing either the script description, the script result, or the script log, depending on which tab below the pane has been selected.

A script window in the Script Editor application.

By default, the script window is rather small, so you may wish expand its size before proceeding with this tutorial. Please note that the Script Editor and other AppleScript tools are covered in detail elsewhere in this book.

Our First Script

You’ll begin the process of learning AppleScript by writing a series a simple script commands in the form of a “tell statements.” A tell statement is a single line script beginning with the verb: tell . This verb is used to direct script actions at a specific application or scriptable object. A tell statement is composed of two parts:

  1. A reference to the object to be scripted, and
  2. The action to be performed.

Using this grammatical format or syntax, we can write scripts instructing the Finder to perform whatever actions we desire. Here’s our first script:

A simple script statement to close all open Finder windows.

tell application «Finder» to close every window

Enter this script in the top pane of the Script Editor script window exactly as show (be sure to encase the word “Finder” in straight quotes). Click the Compile button on the script window to confirm that it has been written correctly and to prepare the script for use.

Next, click the Run button to play your script. The operating system will read the script and send the appropriate commands to the Finder application, which will then follow the instruction to close any open windows.

Congratulations, you’ve written and run your first AppleScript script!

Note that the word “Finder” is enclosed in quotation marks in the script. Names and textual data are always quoted in scripts. This is done to indicate to the Script Editor that the quoted material is textual data and not to be considered as commands or instructions when the script is compiled in preparation for execution.

Delete the previous script from the script window, then enter, compile, and run the following script:

A script to open the hard drive that contains the currently running System folder.

tell application «Finder» to open the startup disk

A new Finder window will now appear on the desktop displaying the contents of the startup disk. We’ll use this newly opened window as we examine the properties of a Finder window.

Finder windows display the contents of folders or disks.

A Word about Finder Windows

Finder windows are different from other windows used by the Finder application, in that they display the contents of folders and, may contain a Toolbar and Sidebar. The remaining script examples of this chapter we will use the term Finder window instead of the generic term window when referring to Finder windows.

Источник

Script editor mac os ��� ���

Since this tutorial is very “hands-on,” we’ll be writing scripts right away. To write a script, you’ll use the Script Editor application installed in your system. You can find this application in the AppleScript folder located in the Applications folder on your computer’s main hard drive. Navigate to this folder now and double-click the Script Editor icon to launch the application.

NOTE: The following description and illustrations are for the Script Editor application included in Mac OSX 10.5. Earlier versions will have a different design.

The Script Editor application icon.

After starting up, the Script Editor application displays a multi-paned window known as a script window. This script window comprises two panes, the top pane containing the script text, and the bottom pane containing either the script description, the script result, or the script log, depending on which tab below the pane has been selected.

A script window in the Script Editor application.

By default, the script window is rather small, so you may wish expand its size before proceeding with this tutorial. Please note that the Script Editor and other AppleScript tools are covered in detail elsewhere in this book.

Our First Script

You’ll begin the process of learning AppleScript by writing a series a simple script commands in the form of a “tell statements.” A tell statement is a single line script beginning with the verb: tell . This verb is used to direct script actions at a specific application or scriptable object. A tell statement is composed of two parts:

  1. A reference to the object to be scripted, and
  2. The action to be performed.

Using this grammatical format or syntax, we can write scripts instructing the Finder to perform whatever actions we desire. Here’s our first script:

A simple script statement to close all open Finder windows.

tell application «Finder» to close every window

Enter this script in the top pane of the Script Editor script window exactly as show (be sure to encase the word “Finder” in straight quotes). Click the Compile button on the script window to confirm that it has been written correctly and to prepare the script for use.

Next, click the Run button to play your script. The operating system will read the script and send the appropriate commands to the Finder application, which will then follow the instruction to close any open windows.

Congratulations, you’ve written and run your first AppleScript script!

Note that the word “Finder” is enclosed in quotation marks in the script. Names and textual data are always quoted in scripts. This is done to indicate to the Script Editor that the quoted material is textual data and not to be considered as commands or instructions when the script is compiled in preparation for execution.

Delete the previous script from the script window, then enter, compile, and run the following script:

A script to open the hard drive that contains the currently running System folder.

tell application «Finder» to open the startup disk

A new Finder window will now appear on the desktop displaying the contents of the startup disk. We’ll use this newly opened window as we examine the properties of a Finder window.

Finder windows display the contents of folders or disks.

A Word about Finder Windows

Finder windows are different from other windows used by the Finder application, in that they display the contents of folders and, may contain a Toolbar and Sidebar. The remaining script examples of this chapter we will use the term Finder window instead of the generic term window when referring to Finder windows.

Источник

Основы AppleScript

Приложение Script Editor

Приложение Script Editor (Редактор сценариев) находится в /Applications/Utilities . Оно предоставляет возможность редактирования, компиляции и выполнения сценариев, отображение скриптинга приложений, и сохранения их в различных форматах, таких как скомпилированные скрипты, приложения и простой текст.

Редактор сценариев может вывести результат выполнения сценария AppleScript и может отобразить журнал событий компании Apple, которые отправляются во время выполнения скрипта. В настройках редактора сценариев, вы можете также выбрать, чтобы сохранять историю последних результатов или журнал событий.

Словарь (dictionary) является частью сценариумных приложений, который определяет условия сценариев, которые оно понимает. Вы можете выбрать File > Open Dictionary в Script Editor для отображения словаря сценариев приложения или скриптового добавления на вашем компьютере. Или вы можете перетащить значок приложения на значок редактора сценариев, чтобы отобразить его словарь (если он есть).

Чтобы отобразить список, который включает только сценарии приложений и сценарии дополнений предоставляемых OS X, выберите Window > Library. Дважды щелкните элемент в списке, чтобы отобразить его словарь. Рисунок ниже показывает словарь для применения в Finder OS X 10.8. Словарь помечен как «Finder.sdef».

Есть также сторонние редакторы для AppleScript.

Читайте также:  Linux принтер нет доступа

AppleScript и объекты

AppleScript является объектно-ориентированным языком. Когда вы пишете, компилируете и выполняете скрипты, все, с чем вы работаете является объектами. Объект является экземпляром определения класса, которое может включать в себя свойства и действия. AppleScript определяет классы для объектов, с которыми вы обычно работаете, начиная с верхнего уровня объекта script , который является общим в сценарии в котором вы работаете.

В объекте script , вы работаете с другими объектами, в том числе:

AppleScript определяет классы для логических значений, сценариев, текстов, чисел и других видов объектов для работы в сценарии;

Части OS X и приложений с поддержкой сценариев, распространяемых с ним, такие как Finder, системные события и события баз данных (находится в /System/Library/CoreServices), определяют много полезных классов.

Сторонние приложения с поддержкой сценариев определяют классы, которые поддерживают широкий спектр функций.

Что включено в script объект

При вводе AppleScript заявления в окне сценария в Script Editor, вы работаете в верхнего уровне объекта script . Все определения объекта script имеют тот же синтаксис, за исключением того, что на высшем уровне script объект не имеет маркировки его начала и конца.

Объект script может содержать следующее:

    Определения свойств (необязательно):

Свойство это именованный контейнер, в котором хранится значение.

Явный обработчик run (необязательно):

Обработчик run содержит заявления AppleScript выполняемые при запуске сценария.

Неявный обработчик run (необязательно):

Неявный обработчик run состоит из любых заявлений вне любого содержащегося обработчика или script объекта.

Дополнительные обработчики (необязательно):

Обработчик является эквивалентом подпрограммы.

Дополнительные объекты script (необязательно):

Объект script может содержать вложенные объекты script , каждый из которых определяется так же, как объект script верхнего уровня, кроме того, что вложенный объект script в скобках с заявлениями, которые отмечают начало и конец.

Вот пример простой сценария с одним свойством, один обработчик, один вложенный объект script , и неявный обработчик run с двумя заявлениями:

Первое заявление в обработчике run запускает testGreet , которsq pfgecrftn вложенный script объект testGreet . Этот объект script вызывает обработчик greetClient() , передавая свойство defaultClientName . Обработчик отображает диалог, приветствуя клиента по умолчанию, Mary Smith.

Второе заявление в run обработчике вызывает greetClient() напрямую, с аргументом «Joe Jones».

Свойства

Свойство объекта является характеристикой, которая имеет единственное значение и метку, такую ​​как name свойство окна или month свойство даты. Определение для любого класса AppleScript включает в себя имя и класс для каждого из его свойств. Имена свойств должны быть уникальными в классе. Значений свойств могут быть для чтения/записи или только для чтения.

Класс date AppleScript, например, определяет как свойства для чтения/записи, так и только для чтения. Они включают свойство weekday , которое предназначено только для чтения, и month , day и year свойства, которые доступны для чтение и записи. Это потому, что значение свойства weekday зависит от других свойств, вы не можете установить произвольное weekday на актуальную дату.

Класс свойства может быть простым классом, таким как boolean или integer , композитным классом, таким как класс point (состоит из двух целых чисел), или более сложным классом.

Большинство классов поддерживают только предопределенные свойства. Тем не менее, для script класса, AppleScript позволяет определить дополнительные свойства.

Элементы

Элемент представляет собой объект, содержащийся внутри другого объекта. Определение для любого класса AppleScript включает типы элементов, которые он может содержать. Обычно объект может содержать ноль или болшее количество каждого из его элементов.

Для заданного типа элемента, объект может содержать множество элементов, либо не содержать, а количество элементов, которое он содержит может изменяться с течением времени. Например, можно получить объект list , не содержащий элементов (это может быть пустой список). В более позднее время, тот же список может содержать много элементов.

Можете ли вы добавлять или удалять элементы из объекта зависит от класса и элемента. Например, объект text является неизменным, вы не можете добавить или удалить текст, если объект однажды создан. Для объекта list , вы не можете удалять элементы, но вы можете использовать команду set , чтобы добавить элемент в начало или в конец:

Объект спецификаторов

Объект спецификатор указывает информацию, необходимую, чтобы найти другой объект с точки зрения объектов, в которых он содержится. Объект спецификатор может ссылаться на объекты приложения, такие как окна или файл, или же объект AppleScript, такие как элемент в списке или свойство в записи.

Объект спецификатор получает полную оценку (или разрешение) только тогда, когда скрипт запускается, а не при его компиляции. Сценарий может содержать корректный описатель объекта (например, third document of application «TextEdit» , который вызывает ошибку при выполнении сценария (потому что, например, может быть открыто меньше, чем три документа).

Приложения обычно возвращают объект спецификаторов в ответ на команды. Например, если вы спросите Finder для окна, он возвращает информацию, которая определяет объект окна, который запросил сценарий (если он существует). Контейнер верхнего уровня в объекте спецификаторе обычно само приложение.

Разница между спецификатором объекта и объектом это, как разница между адресом здания и самим зданием. Адрес представляет собой набор слов и цифр, например, «Санкт-Петербург, Коммунистический проспект 16», который идентифицирует расположение (на улице, в городе, в районе). Он отличается от самого здания. Если здание в этом месте рушится и возводится новое здание, адрес остается прежним.

Что внутри объекта спецификатора

Объект спецификатор описывает тип объекта, расположение, и как отличить объект от других объектов того же типа в этом месте. Эти три типа информационного-типа или класс; расположеник или контейнер; отличительная информация или формальная ссылка, позволяющая указать любой объект.

В следующем примере, класс объекта paragraph . Контейнер — фраза of document 1 . Поскольку эта фраза внутри заявления tell , заявление tell предоставляет контейнер верхнего уровня, приложения «TextEdit». Отличительной информацией (ссылкой) является комбинацией класса paragraph , а значение индекса, 1 , которые вместе указывают на первый параграф.

Контейнеры

Контейнер представляет собой объект, содержащий один или несколько объектов или свойств. В спецификаторе контейнер определяет, где найти объект или свойство. Чтобы указать контейнер, используйте слово of или in , как в следующем заявлении (из Finder tell блока):

Контейнер может быть объектом или несколькими объеками, перечисленными от внутреннего к внешнему содержащему объект, как показано ниже:

Вы также можете использовать притяжательные формы (‘ s ), чтобы указать контейнеры. В следующем примере, самый внутренний контейнер является first window и объект, который представляет собой свойство name :

В этом примере, целю заявления tell («TextEdit») является внешний контейнер для объекта спецификатора.

Абсолютные и относительные спецификаторы объекта

Абсолютный спецификатор объекта имеет достаточно информации, чтобы идентифицировать объект или объекты однозначно. Он может быть использован в любом месте в сценарии. Для ссылки на объект приложения, чтобы быть абсолютным, его внешний контейнер должен быть самим приложением, например:

В противоположность, относительной спецификатор объекта не определяет достаточно информации, чтобы идентифицировать объект или объекты однозначно, например:

Когда AppleScript встречает спецификатор относительного объекта в заявлении tell , он пытается использовать цель по умолчанию, указанную в инструкции для завершения объекта спецификатора. Хотя этого обычно не требуется, эта неявная цель может быть задана явно с помощью ключевого слова it .

По умолчанию цель заявления tell является объектом, который получает команды, если никакой другой объект не указан. Например, следующее заявление tell говорит Finder, получить имя с помощью относительного предыдущего спецификатора объекта.

Когда AppleScript встречает относительный спецификатор объекта за пределами любого tell заявления, он пытается завершить объект спецификатор, просматривая по цепочке наследования.

Объект Спецификаторов в ссылочных объектах

Когда можно создать ссылку ( reference ) на объект с оператором a reference to , он содержит объект спецификатор. Например:

В этом скрипте переменная docRef является ссылкой объект спецификатор которой относится к первому документу приложения TextEdit-что приводит, к его названию «New Report.rtf»,Ы в данном случае. Тем не менее, объект, который ссылается на docRef может измениться. Если вы открываете второй документ TextEdit называемый «Second Report.rtf», его окно перекрывает окно предыдущего документа, а затем запустить этот сценарий еще раз, он будет возвращать имя нынешнего документа на переднем плане,»Second Report.rtf» .

Вы могли бы вместо этого создать ссылку с более конкретным объектом спецификатором:

Если вы запустите этот сценарий после открытия второго документа, он все равно будет возвращать имя исходного документа, «New Report.rtf», если документ существует.

После создания ссылки на объект с оператором a reference to , вы можете использовать свойство contents , чтобы получить значение объекта, на который он ссылается. В следующем примере, содержимое переменной myWindow это сама ссылка окна.

Следует отметить, что в результате команды get вернется объект спецификатор ссылки, а не спецификатор к объекту, который он определяет.

Когда он это может, AppleScript неявно разыменовывает ссылки на объект (без использования свойства contents ), как в следующем примере:

Приведение (преобразование объекта)

Приведение (также известный как объект преобразования) представляет собой процесс преобразования объектов из одного класса в другой. AppleScript преобразует объект в другой класс в любом из следующих случаев:

  • в ответ на as оператор
  • автоматически, если объект другого класса, чем ожидалось для конкретной команды или операции

Не все классы могут быть приведены ко всем другим типам классов. Таблица ниже суммирует приведения, которые поддерживает AppleScript для часто используемых классов.

Оператор as указывает конкретное приведение. Например, следующее заявление приводит целое 2 в текстовое «2» перед его сохранением в переменной myText :

Если вы предоставляете параметру команды или операнда неправильный класс, AppleScript автоматически приводит операнд или параметр к ожидаемому классу, если это возможно. Если преобразование не может быть выполнено, AppleScript сообщает об ошибке.

Поддерживаемые приведения AppleScript по умолчанию:

Преобразование из класса В класс Примечания
alias list (один пункт)
text
application list (один пункт) Это одновременно и класс AppleScript и класс приложения.
boolean integer
list (один пункт)
text
class list (один пункт)
text
constant list (один пункт)
text
date list (один пункт)
text
file list (один пункт)
text
integer list (один пункт)
real
text
Приведение integer к number не изменяет класс.
list (один пункт) text , если каждый из элементов в списке может быть приведен к объекту text
number integer
list (один пункт)
real
text
Значкеия, которые определены в качестве значений класса number в действительности значения либо integer класса или класса real .
POSIX file См. file POSIX file является псевдо-классом file
real integer
list (один пункт)
В приведении к integer , дробная часть округляется.
Приведение к real не меняет класс.
record list Все метки теряются во время приведения к list , обратное приведение к record невозможно.
reference любой класса, к которому указанный объект может быть приведен
script list (один пункт)
text integer
list (один пункт)
real
Можно привести к integer или real только если объект text представляет соответствующее числовое значение.
unit types integer
list (один пункт)
real
text
Может привести между блоками типа в той же категории, например, inches к kilometers (длина) или gallons в liters (объем жидкости).
Читайте также:  Linux make install makefile

Сценарии дополнений

Сценариумное дополнение представляет собой файл или bundle-пакет, который предоставляет обработчики, которые вы можете использовать в сценарии для выполнения команд и приведений.

Многие из команд, описанных в данном руководстве определены в стандартных добавочных сценариях в OS X. Эти команды хранятся в файле StandardAdditions.osax в /System/Library/ScriptingAdditions и доступны любому сценарию. Вы можете изучить терминологию для стандартных дополнений, открыв этот файл в редакторе сценариев.

Сценарии дополнений могут быть внедрены в bundle-пакеты скриптовых апплетов, поместив их в папку с именем Scripting Additions (обратите внимание на пробел между «Scripting» и «Additions») внутри bundle-пакета папки Contents/Resources/ . Обратите внимание, что редактор сценариев не рассматривает встраиваемые дополнения сценариев при редактировании bundle-пакетов апплетов. Во время разработки сценария, все необходимые дополнения сценариев должен быть правильно установлены в /System/ScriptingAdditions , /Library/ScriptingAdditions или

/Library/ScriptingAdditions так, чтобы редактор сценариев мог их найти.

Обзор команд

Команда — это слово или последовательность слов, используемых в заявлениях AppleScript для запроса действия. Каждая команда направлена ​​на цель, которая является объектом, реагирующим на команду. Целью чаще является объект приложения (который сохранен в приложении или его документах и управляет приложением, например окно или документ) или объект в OS X. Тем не менее, он также может быть объектом сценария или значением в текущем сценарии.

Команды часто возвращают результаты. Например, команда display dialog возвращает записи, которые могут содержать текст, название кнопки, и другую информацию. Сценарий может изучить эту запись, чтобы определить, что делать дальше. Вы можете присвоить результат команды переменной, которую вы определяете, или получить доступ к нему через предопределенную переменную result AppleScript.

Типы команд

Сценарии могут использовать следующие виды команд:

  • Команды AppleScript это те, которые построены на языке AppleScript. В настоящее время пять таких команд: get , set, count, copy и run . За исключением copy , каждая из этих команд может также быть реализована приложением. То есть, имеется версия команды из AppleScript, которая работает на объектах AppleScript, но в приложении можно определить свою собственную версию, которая работает с типами объектов, которые оно определяет.
  • Команды сценариумных дополнений это те, которые реализуются через механизм, описанный в «Сценарии дополнений»).
  • Определенной пользователем командой является та, которая реализуется с помощью обработчика определеного в script объекте. Для вызова определенной пользователем команды за пределами tell заявления, просто используйте ее имя и укажите значения для всех требуемых параметров. Команда будет использовать текущий сценарий в качестве своей цели.
  • Команда приложения определяется сценариумным приложением, чтобы обеспечить доступ к сценариумной функции. Они, как правило, заключены в заявлении tell . Вы можете определить, какие команды приложение поддерживает проверив его словарь в Script Editor.

Приложения с поддержкой скриптов, которые поставляются с OS X, такие как Finder и System Events (находится в /System/Library/CoreServices ), предоставляют множество полезных скриптовых команд.

Есть два способа указать объект в качестве цели команды: путем подачи его в качестве прямого параметра команды (описан в следующем разделе), либо указав его в качестве цели tell заявления, содержащего команду. Если сценарий явно не определяет цель посредством заявления tell , и она не обрабатывается обработчиком в сценарии AppleScript или самой, он отправляется к следующему объекту в цепочке наследования.

В следующем примере, целью команды get является объекта спецификатор name of first window . Поскольку ограждающая tell инструкция определяет приложение Finder, полный спецификатор name of first window of application «Finder» , и это приложение Finder которое получает и возвращает запрошенную информацию.

Когда цель команды приложение, результатом может быть объект приложения. Если это так, последующие заявления, ориентированны на объект из результа, и отправлятся в приложение.

Прямой параметр

Прямым параметром является значение, как правило, объект спецификатор, который появляется сразу после команды и указывает цель команды. Не все команды имеют прямой параметр. Если команда может иметь прямой параметр, его следует отметить в определении команды.

В следующее заявлении, объект спецификатор last file of window 1 of application «Finder» является прямым параметром команды duplicate :

tell заявление определяет цели по умолчанию для всех команд, содержащихся в нем, так что прямой параметр является необязательным. Следующий пример имеет тот же результат, что и предыдущий пример:

Параметры, определяющие расположение

Многие команды имеют параметры, которые определяют положение. Положение может быть или точкой вставки или другим объектом.Точка вставки находится в месте, где объект может быть добавлен.

В следующем примере, параметр to указывает местоположение в которое нужно переместить первый параграф. Значение to параметра команда duplicate относительного спецификатора объекта before paragraph 4 , которое является точкой вставки. AppleScript завершает спецификатор с целью заявления tell , front document of application «TextEdit» .

Фразы paragraph 1 и before paragraph 4 называют индексом и относительными ссылками, соответственно.

AppleScript Обработка ошибок

В ходе выполнения скрипта могут возникать ошибки из-за взаимодействия с OS X, проблемы, возникающие в командах сценариев приложений или проблем, связанных с заявлениями в самом скрипте. При возникновении ошибки, AppleScript останавливает выполнение в текущем местоположении, сигнализирует об ошибке, и смотрит в вызывающей цепочке операторов скрипта, обработчик который может обрабатывать ошибки. То есть, он ищет ближайший блок кода обработки ошибок, который окружает место, где произошла ошибка.

Сценарии могут обрабатывать ошибки, заключив заявления, в которых могут возникнуть ошибки в try заявление. Заявление try включает в себя on error секцию, которая вызывается в случае ошибки. AppleScript передает информацию об ошибках, в том числе номер ошибки и сообщение об ошибке, в on error секцию. Это позволяет изучить скрипту номер ошибки и отображать информацию о ней.

Если происходит ошибка в обработчике, который не предусматривает заявление try , AppleScript ищет ограждающие try заявление, в котором обработчик был вызван. Если ни один из вызовов в цепочке вызовов не содержит в заявлении try , AppleScript останавливает выполнение скрипта и выводит сообщение об ошибке (ошибки, кроме номер -128, описаны ниже).

Сценарий может использовать заявление error , чтобы сигнализировать об ошибке напрямую. Это вызывает ошибку обработки в AppleScript механизме, который ищет ограждающие заявления try для обработки ошибки.

Некоторые «ошибки» являются результатом нормальной работы команды. Например, такие команды, как display dialog и choose file сигнализируют error –128 (Пользователь отменил), если пользователь нажимает кнопку Отмена. Сценарии регулярно обрабатывают пользовательские ошибки отменены для обеспечения нормальной работы. Если никакие заявления try в сценарии не обрабатывают -128 ошибку, AppleScript останавливает выполнение скрипта без отображения сообщения об ошибке.

Глобальные константы в AppleScript

AppleScript определяет ряд глобальных констант, которые можно использовать в любом месте скрипта.

Глобальная константа AppleScript обеспечивает доступ к свойствам, которые вы можете использовать на протяжении всего скриптаы.

В следующих разделах описываются дополнительные свойства AppleScript.

Математическое значение числа пи = 3.14159265359.

result

Когда заявление выполняется, AppleScript сохраняет полученное значение, если таковое имеются, в заранее определенном свойстве result . Значение остается там, пока еще одно заявление не будет выполнено, которое сгенерирует новое значение. До выполнения какого-либо заявления, выдающего результат, значение result не определено. Вы можете просмотреть результат в Script Editor, посмотрев в области Результат рабочего окна скрипта.

Текстовые константы

AppleScript определяет пространство текстовых свойств space, tab, return, linefeed и quote . Вы можете эффективно использовать эти свойства как текстовые константы для представления пробела или двойных кавычек («).

text item delimiters

AppleScript предоставляет свойство text item delimiters для использования в обработке текста. Это свойство состоит из списка строк, используемых в качестве разделителей на AppleScript, когда приводится список к тексту или получает текстовый элемент из текстовых строк. AppleScript в настоящее время использует только первый разделитель из списка.

Поскольку text item delimiters не нарушает considering и ignoring атрибуты в AppleScript 2.0, разделители не чувствительны к регистру по умолчанию. Ранее, они всегда были чувствительны к регистру. Для исполнения предыдущего поведения, добьте явное заявление considering case .

Вы можете получать и устанавливать текущее значение свойства text item delimiters . Как правило, AppleScript не использует разделители. Например, если текстовые разделители не были явно изменены заявлением.

Для печати и отображения целей, как правило, предпочтительно установить text item delimiters , чтобы легче было читать. Например, сценарий

Свойство text item delimiters может быть использовано для извлечения отдельных имен из файлового пути. Например, сценарий

возвратит «Release Notes» .

Сценарии обычно используют обработчик ошибок, чтобы сбросить свойство text item delimiters до его прежнего значения в случае ошибки

version

Это свойство обеспечивает текущую версию AppleScript. Следующий сценарий показывает, как проверить версию большую или равную версии 1.9. Заявление if , завернуто в considering numeric strings , поэтому версия AppleScript, такая как 1.10.6 сравнивается как большее, чем, скажем, версия 1.9.

Приложения могут иметь свои собственные свойства version , так что для доступа к версии AppleScript явно, используют фразу version of AppleScript . Это будет работать внутри tell блока, предназначенного для других приложений, таких как:

current application

Константа current application относится к приложению, в котором выполняется текущий скрипт AppleScript (например, Script Editor). Поскольку текущее приложение является родителем AppleScrip, оно получает возможность обрабатывать команды, которые не обрабатываются текущим сценарием или AppleScript.

Текущее приложение является постоянным объектом спецификатором -если вы спросите AppleScript его значение, то результатом будет объект заказчик:

Однако, если вы просите name of current application , AppleScript устраняет объект спецификатор и возвращает имя текущего приложения:

missing value

Постоянная missing value является заполнителем для отсутствующей или неинициализированной информации.

Например, следующие заявления используют постоянную missing value для определения, является ли переменная измененной:

true, false

AppleScript определяет булевы константы true и false . Эти константы описаны с boolean классе.

Ключевые слова it и me

AppleScript определяет ключевые слова, me чтобы обратиться к текущему сценарию и ключевое слово it для обозначения текущей цели. (Текущим скриптом является тот, который в настоящее время выполняется; текущей целью является объект, который является текущим выбранным по умолчанию для команд.) Он также определяет my в качестве синонима для of me и its в качестве синонима для of it .

Если сценарий не был чей-то целью, it и me остановятся на одном и том же-сценарии, как показано в следующем примере:

Заявление tell определяет цель по умолчанию. В следующем примере, целью по умолчанию является приложение Finder:

Вы можете использовать слова of me или my , чтобы указать, что целью команды является текущий сценарий, а не цель tell заявления. В следующем примере, слово my указывает, что обработчик minimumValue() определяется сценарием, а не Finder:

Вы также можете использовать of me или my , чтобы отличить свойства сценария от свойств объекта. Пусть имеется документ TextEdit открытый с именем «Simple.rtf»:

В следующем примере показано, как задать различные version свойства в Finder tell заявления. Finder устанавливается по умолчанию, но с использованием version of me , my version или version of AppleScript позволяет указать версию объекта сценария верхнего уровня. (Объект сценария верхнего уровня возвращает версию AppleScript, потому что он наследуется от AppleScript).

Псевдонимы и файлы

Для ссылки на пункты и места в файловой системе OS X, вы используете alias объекты и file объекты.

Объект alias является динамической ссылкой на существующий объект файловой системы. Так как он динамический, он может поддерживать связь с назначенным объектом файловой системы, даже если этот объект будет перемещен или переименован.

Объект file представляет определенный файл в определенном месте файловой системы. Это может относиться к пункту, который в настоящее время не существует, такому как имя и расположение файла, который должен быть создан. Объект file не является динамическим, и всегда ссылается на одно и то же место, даже если другой элемент перемещен в это место. POSIX file псевдо-класс грубый синоним файла: POSIX file оценивает спецификатор объекта file , но они используют различные семантики имени.

Ниже приводится рекомендуемое использование для этих типов:

  • Используйте alias объект, чтобы обратиться к существующим объектам файловой системы.
  • Используйте объект file для ссылки на файл, который еще не существует.
  • Используйте спецификатор POSIX file , если вы хотите указать файл, используя путь POSIX.

Указание путей

Вы можете создать alias объект и file объект, предоставляя имя спецификатор, где имя, это путь к элементу в файловой системе.

Для alias и file спецификаторов, путь это HFS путь, который принимает форму «disk:item:subitem:subsubitem. item» . Например: «Hard_Disk:Applications:Mail.app» , является HFS путем к почтовому приложению, предполагая, загрузочный диск названный «Hard_Disk» .

HFS путь с ведущими двоеточиями, такими как «:folder:file» , определяются относительно HFS рабочего каталога. Однако их использование не рекомендуется, потому что расположение рабочего каталога HFS не задано, и нет никакого способа, управлять им с помощью AppleScript.

Для файлов POSIX спецификаторов, путь это путь POSIX, который принимает форму «/item/subitem/subsubitem/. /item» . Имя диска не требуется для загрузочного диска. Так, например, «/Applications/Mail.app» это POSIX путь к приложению почты. Вы можете увидеть POSIX путь в Finder в поле «Где» его окна свойств. Несмотря на название, POSIX файл спецификатор может относиться к папкам или дискам. Использование «

«, чтобы указать домашний каталог не поддерживается.

POSIX пути без косой черты, такие, как «folder/file» , определяются относительно рабочего каталога POSIX. Это поддерживается, но полезно только для сценариев выполняемых из командной строки,- рабочий каталог текущая директория в оболочке. Расположение рабочего каталога POSIX для приложений, не определено.

Работа с псевдонимами

AppleScript определяет класс alias для представления псевдонимов. alias может быть сохранен в переменной и использоваться во всем сценарии.

Следующий сценарий сначала создает псевдоним для существующего файла в переменной notesAlias ​​, а затем использует переменную в tell заявлении, которое открывает этот файл. Он использует try заявление для проверки существования псевдонима, прежде чем создавать его, так что псевдоним создается только один раз, даже если скрипт запускается повторно.

Как только вы запустите предыдущий пример создастся псевдоним, и сценарий сможет найти исходный файл, когда вы запустите его снова, даже если имя файла или место измененятся. (Однако, если вы запустите скрипт снова после перекомпиляции, это приведет к созданию нового псевдонима.)

Вы можете получить HFS путь из псевдонима путем приведения его к тексту:

Вы можете использовать свойство POSIX path для получения пути в POSIX-стиле к элементу на который ссылается псевдоним:

Если псевдоним не относится к существующему объекту файловой системы, то он сломан. Вы не можете создать псевдоним на объект, который не существует, например, файл, который вы планируете создать. Для этого вам нужно использовать объект file , описанный в следующем разделе.

Работа с файлами

AppleScript использует объект file для представления файлов в скриптах. Объект file может быть сохранен в переменной и использоваться в сценариях. Следующий сценарий сначала создает объект file для существующего файла в переменной notesFile , а затем использует переменную в заявлении tell , которое открывает файл:

Вы можете использовать объект file , чтобы указать имя и расположение файла, который может не существовать:

Точно так же вы можете позволить пользователю указать новый файл командой choose file name , а затем использовать полученный объект file для создания файла. В следующем примере, если пользователь отменяет диалог choose file name , остальной сценарий не выполняется. Если пользователь действительно предоставляет имя файла, сценарий открывает файл, создавая его, если это необходимо, а затем использует заявление try , чтобы убедиться, что он закрывает файл, когда закончил писать в него.

Удаленные приложения

Сценарий может предназначаться для приложения на удаленном компьютере, если удаленные приложения включены на этом компьютере, и если сценарий задает компьютер в стиле eppc спецификатора.

Включение удаленного приложения

Чтобы сценарий мог посылать команды удаленному приложению, должны быть удовлетворены следующие условия:

  • Компьютер, который содержит приложение и компьютер, на котором запускается сценарий должны быть соединены друг с другом через сеть.
  • Удаленные события Apple, (устанавливаются в панели Системных настроек в разделе Общий доступ) должны быть включены (вы можете разрешить доступ для всех пользователей или для определенных пользователей).
  • Если удаленное приложение не работает, вы должны запустить его.
  • Вы должны аутентифицироваться в качестве администратора,при компиляции или запуске сценария.

eppc-стиль спецификаторов

Спецификатор в eppc стиле имеет следующий формат:

Ниже приведены примеры правильных спецификаторов в eppc стиле. Если указать имя пользователя и пароль, проверка подлинности не требуется. Если вы их не предоставляете, может потребоваться аутентификация.

Таргетинг удаленного приложения

Можно настроить таргетинг для приложения, которое выполняется на удаленном компьютере, и вы можете запускать приложения на удаленных машинах, которые в данный момент не запущены.

В следующем примере используются спецификатор в eppc стиле c целью Finder на удаленном компьютере. Он включает в себя имя пользователя и пароль, так что проверка подлинности не требуется.

В некоторых случаях, вы должны будете использовать заявление using terms from , чтобы сказать AppleScript при компиляции об отношении локальной версии приложения. Следующий пример использует такой метод, говоря удаленному приложению Finder, открыть приложение TextEdit:

Если опустить пароль ( pwd ) в предыдущем сценарии, вы будете иметь запрос на аутентификацию при запуске сценария.

Отладка сценариев AppleScript

AppleScript не включает в себя встроенный отладчик, но он дает несколько простых механизмов для отладки сценариев или простошо наблюддения, за тем, как они работают.

Обратная связь от ваших сценариев

Вы можете вставлять различные заявления в сценарий, чтобы указать текущее местоположение и другую информацию. В простейшем случае, вы можете вставить команду звукового сигнала интересующем Вас месте:

Команда display dialog может отображать информацию о происходящем в сценарии, и, как точки останова, она останавливает выполнение, пока вы не закроете (или до истечения времени, в зависимости от передаваемых параметров). Следующий пример отображает текущее местоположение сценария и значение переменной:

Команда say может привлечь ваше внимание, говоря заданный текст. В следующем примере, currentClient текстовый объект, который хранит имя клиента:

Логинг

Script Editor может отобразить журнал событий компании Apple, которые отправляются во время выполнения скрипта. В настройках редактора сценариев, вы можете также выбрать, сохранять историю последних результатов или журнал событий.

Кроме того, вы можете вставить операторы log в сценарий. Вывод log показан в окне сценария в панели журнал событий, и в истории окна Журнала событий, если он открыт.

Следующий простой пример записывает текущие слово в repeat with loopVariable (in list) заявление

Ниже показано, как слова появляются в журнале, когда запускается скрипт:

Если вам нужны полнофункциональные возможности отладки, есть мощные, сторонние отладчики AppleScript.

Источник

Читайте также:  Как подключится через iphone с windows
Оцените статью