Переменные и значения

Как правило, в процессе работы скрипта необходимо хранить какие-то значения и получать их, когда они необходимы. Для этой цели служат переменные. По умолчанию, значения переменных хранятся в виде строк. Вы можете присваивать значения переменным с помощью команд (например, Установить переменные) или специальных функций. Имя переменной может состоять из букв и цифр и не должно содержать служебные символы. Имена переменных зависят от регистра букв. Например, MyName и myname являются разными переменными.

Область видимости

Область видимости переменной ограничена скриптом, где она была определена. Это сделано для того, чтобы скрипты не могли влиять друг на друга. Например, вы присвоили переменной name значение John и вызвали другой скрипт. Этот скрипт также создает для своих целей переменную с таким же именем name и значением Alex. Если не ограничить область видимости переменных, то в этом случае значение вашей переменной измениться на Alex, что вы совсем не хотели бы.

Следует заметить, что новая область видимости создается при выполнении скриптов в закладке Скрипт, а весь код, который определён в закладке Исходный код работает с областью видимости родительского скрипта. Поэтому не рекомендуется присваивать там значения переменным.

Получение значений

Чтобы в любом поле подставить значение переменной, достаточно заключить имя переменной между символами #. Например, #name#, #myValue#. При обработке параметров будут подставлены все найденные значения переменных. Подстановка значений происходит во время выполнения скрипта и выполняется рекурсивно. Пусть у нас определены следующие переменные:

1firstname = "John"
2lastname = "Doe"
3name = "#firstname# #lastname#"

В этом случае, Name: #name# возвратит Name: John Doe, так как происходит рекурсивная подстановка всех вложенных значений. Если переменная не найдена, то строка остается без изменений. Например, если для примера выше указать, #name# #address#, то вы получите John Doe #address#, так как переменной адрес не существует.

Следует заметить, что в полях типа Имя переменной, Результирующая переменная, Переменная индекс и т.д. нужно указывать только имена переменных без символов #. Вы можете использовать #varname#, только если другая переменная (в данном случае varname) содержит имя вашей переменной.

Переменные объекты

Кроме обычных переменных существуют переменные, которые позволяют хранить объекты. Объекты необходимы для работы с JSON, YAML и подобными данными, а также для работы с различными списками. Объект может содержать значения следующих типов: число, строка, число с плавающей точкой, логическое значение, массив объектов и ассоциативный массив объектов. Для хранения имен переменных и объектов используются разные массивы. Если вы указали #myvar#, то в начале идет поиск среди обычных переменных, если ничего не найдено, то тогда ищется объект с таким именем. Если найденный объект является числом, строкой или логическим значением, то тогда возвратится его значение, в противном случае, подстановки не произойдёт и #myvar# останется без изменений. Для получения полей ассоциативного массива можно использовать квадратные скобки или указывать имя нужного поля через точку. В случае обычного массива, нужно использовать квадратные скобки для получения элемента по его индексу. Вы также можете использовать подстановку значений внутри квадратных скобок. Предположим, что переменная myobj содержит следующие данные:

 1{
 2    "root": "/home/user",
 3    "index": 0,
 4    "app": "My Application",
 5    "files": [
 6        {
 7            "file": "myfile.txt",
 8            "size": 2543
 9        },
10        {
11            "file": "test.txt",
12            "size": 257
13        }
14    ]
15}

Тогда при обращении к полям будут возвращены следующие значения

1#myobj# = #myobj#
2#myobj.root# = /home/user
3#myobj[app]# = My Application
4#myobj.files[#myobj.index#].file# = myfile.txt
5#myobj[files][1].size# = 257

Чтение файлов

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

1<#mypath#/myfile.log>
2<c:\temp\package.json>
3<./data/settings.yaml>

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

Онлайн-демо
Скачать Документация Скрипты
Русский
English