AutoIt является мощным скриптовым языком, при своём малом размере включает большую базу различных функций. При компиляции утилиты в неё входит основной движок Autoit. Команда exect позволяет вызывать функции Autoit на прямую, создавать переменные с данными и передавать их другим командам.
1. Функции.
• В справку TCIMG.chm входят не все функции Autoit, только основные: для обработки строковых, математических действий и получения различной информации... Возможно (по мере необходимости) будут протестированы и добавлены другие.
• Для ознакомления работы всех функций вы можете скачать справочный файл Autoit3.chm (русская версия для v3.3.8.1) или актуальную английскую версию Autoit.chm
• Если у Вас появятся примеры вызова других функций через команду exect, высылайте, добавлю в справку...
• Не все функции могут быть запущены через команду exect. Не поддерживаются циклы...
2. Макросы.
• В команде exect можно использовать макросы Autoit
| Пример записи: exect=@ProgramFilesDir GLOBALEXECT<a> |
Описание и примеры| • Переменная - это просто место для хранения данных в памяти, откуда они могут быть быстро получены. Думайте об этом, как о почтовом ящике, куда можно положить данные или забрать их. К примеру, вы можете создать переменную, хранящую в себе ответ пользователя на вопрос или результат математического выражения. • Каждая переменная в команде exect имеет имя (снова схожесть с почтовым ящиком), которое начинается с префикса $var_ и может содержать цифры и символы латинского алфавита в нижнем регистре. Вот несколько примеров: $var_array, $var_number, $var_string1 • Все переменные в команде exect являются глобальными. • Переменные сохраняются и сохраняют свои данные до завершения работы утилиты. |
| Для того чтобы переменной присвоить данные необходимо в команде exect прописать имя переменной, знак равно и данные (или функцию, которая возвращает данные переменной) Примеры: exect=$var_i=1 ;; переменной $var_i присвоено значение 1 |
| Данные и тип переменной могут быть изменены только в команде exect. Переменные могут передавать данные друг другу. Примеры: exect=$var_i=1 ... exect=$var_i='привет~~мир!' Примеры: exect=$var_a=StringSplit('1a|2a|3a','|',1) ... exect=$var_a='привет~~мир!' |
• Для сокращения длины командной строки при изменении уже существующих переменных можно воспользоваться операторами:
Примеры: exect=$var_n=5||$var_n+=10||_ViewValues($var_n) |
| Между переменными поддерживаются математические и строковые операции с помощью математических операторов, операторов присвоения и функций Autoit • Строковый тип переменных необходимо заключать в одинарные кавычки. • Числовой тип переменных не обязательно заключать в кавычки. • Объединение, вычисление, присвоение данных переменным могут производится только в команде exect. Примеры: ;; рассмотрим несколько вариантов из данных переменной первой строки: exect=($var_n1+$var_n2)*$var_n3-$var_n4^2+($var_n1/2)*$var_n5 • В математических выражениях НЕ должно быть оператора присвоения (объединения) & • Подобные примеры можно привести и для массивов, в которых участвуют ячейки массива $var_array[1], $var_array[2], ... $var_array[N] • Т.к. массивы могут содержать разные типы данных, то не надо забывать заключать переменные в одинарные кавычки: '$var_array[1]' |
| • Переменные могут передаваться в функции Autoit. • Строковый тип переменных необходимо заключать в одинарные кавычки. • Результаты строковых функций могут быть объедены оператором присвоения & • Результаты числовых функций могут быть вычисляться в одном вызове с помощью математических операторов + - ^ \ * • Функции могут быть вложены друг в друга. Примеры: exect=$var_s1='строка' ... exect=$var_s2=StringLeft('$var_s1',3) ;; передача значений переменной в функцию |
| • В команде exect поддерживается тернарное условие присвоения при вычислении результатов. • Примеры и описание смотрите в приложении |
| • В любом месте командной строки переменные $var_... будут заменены на соответствующие значения переменных. • При передаче переменных другим командам не надо заключать их в кавычки. Примеры: exect=$var_i=1 ... bufsr=##$var_i ;; переменная $var_i передана команде bufsr • Все результаты присвоения переменным (вычисления) в GLOBALEXECT записываются последовательно. • Результат без присвоения (если в команде нет знака равно =) записывается в 1-ю ячейку. • Так же в GLOBALEXECT записываются массивы созданные (переданные) в exect. • Минус её в том, что она после каждого вызова команды exect перезаписывается, а переменные $var_ нет (если конечно запланировано). |
| a | (Array) Массив данных ($var_a...) | |
| b | (Binary data) Двоичные данные ($var_b...) | |
| h | (File or window handle) Дескриптор файла, окна и т.д. ($var_h...) | |
| i | (Integer) Целое число ($var_i...) | |
| f | (Boolean) Логический тип, может принимать значения True или False ($var_f...) | |
| n | (Floating point number) Число с плавающей точкой ($var_n...) | |
| s | (String) Строка ($var_s...) | |
| v | (Variant) Неопределенный или изменяющийся тип данных, базовый тип для Autoit ($var_v...) | |
| t | (Struct) Структура в стиле C/C++, для использования в DllCall, в сообщениях WM_*, при обработке данных и т.п. ($var_t...) | |
| p | (Pointer) Указатель на структуру или на её элемент ($var_p...) | |
| o | (Object) Объект ($var_o...) |
| • Есть особенности передачи переменных различного типа данных через команду exect. • Заключаются они в том, что при передаче через командную строку невозможно точно определить какого типа переменная передает данные. • В большинстве случаев это не принципиально, т.к. в основном передаются строковые или числовые данные. • Для точной передачи или определения типа данных необходимо воспользоваться командой Eval('имя_переменной'). • Имя переменной прописывается БЕЗ знака $. Примеры: exect=$var_aa=StringSplit('1|2|3|4','|',2)||$var_i=IsArray(Eval('var_aa'))||_ViewValues($var_i) ;; пример проверки является переменная массивом или нет |
Описание и примеры| Примеры: exect=Sqrt( 2 ) ; не правильный вызов функции, т.к. есть пробелы |
Описание и примеры
|
| Примеры: exect=$var_array=##$LISTF<c:\test1.txt/c:\test2.txt/c:\test3.txt>!!-1 GLOBALEXECT<$var_array> |
| Пример записи: exect=$var_a1=##$PS<...>||$var_a2=##$PS<...>||$var_a3=##$PS<...> ... |