Запуск скриптов

Запуск скриптов

При запуске AutoIt предлагает пользователю выбрать скрипт. Скрипт - это простой текстовый файл, содержащий ключевые слова и функции, объясняющие AutoIt, что от него требуется сделать. Скрипт можно создать простым текстовым редактором (например, Блокнотом) или чем-нибудь получше.

Несмотря на то, что AutoIt v3 скрипты являются обычными текстовыми файлами, они получают расширение .au3 для того, чтобы легче было отличить простой текстовый файл от скрипта. Если использовался полный вариант установки - можно запускать скрипты просто двойным щелчком. Кроме этого, будут добавлены некоторые дополнительные команды в контекстное меню для файлов .au3.


Вот пример скрипта.

; Это мой первый скрипт
; Обратите внимание, что ; используется для комментариев (как REM в файлах DOS batch)

MsgBox(0, "Мой первый скрипт!", "Здравствуй, Мир!")


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

; Это мой второй скрипт (с функцией)
MsgBox(0, "Мой второй скрипт!", "Привет от скрипта!")
TestFunc()

Func TestFunc()
    MsgBox(0, "Мой второй скрипт!", "Привет от функции!")
EndFunc


Параметры командной строки (CMD)

Специальный массив $CmdLine содержит параметры командной строки, переданные скрипту AutoIt при запуске. При этом имя файла скрипта не попадает в этот массив. Используйте макрос @ScriptName, если его необходимо получить. Параметры, содержащие пробелы, должны быть заключены в "двойные кавычки". Скомпилированный скрипт принимает параметры командной строки так же, как и исходный скрипт. Массив $CmdLine является константой и не доступен для изменения размерности или параметров полученных при запуске скрипта.


$CmdLine[0] - число параметров
$CmdLine[1] - параметр 1 (идущий после имени скрипта)
$CmdLine[2] - параметр 2 и т.д.
...
$CmdLine[$CmdLine[0]] - простой способ получить последний параметр...


К примеру, если скрипт запущен таким образом:

 AutoIt3.exe myscript.au3 param1 "это другой параметр" 

$CmdLine[0] будет равен... 2

$CmdLine[1] будет равен... param1

$CmdLine[2] будет равен... это другой параметр

@ScriptName будет равен... myscript.au3


В дополнение к $CmdLine существует переменная $CmdLineRaw, которая содержит параметры командной строки в исходном виде. Пример:

$CmdLineRaw будет равен... myscript.au3 param1 "это другой параметр"


Скомпилированный скрипт принимает параметры точно так же:

    myscript.exe param1 "это другой параметр"

$CmdLineRaw будет равен... param1 "это другой параметр"

Обратите внимание, что $CmdLineRaw для нескомпилированных скриптов возвращает также и полный путь к скрипту в кавычках и параметры /ErrorStdOut, /AutoIt3ExecuteScript, если они есть.


Примечание: массив $CmdLine[...] может вернуть не более 63 параметров, а $CmdLineRaw всегда возвращает полную строку параметров.


Специальные ключи командной строки AutoIt

Форма1:  AutoIt3.exe [/ErrorStdOut] [/AutoIt3ExecuteScript] file [params ...] 
                Выполнить файл скрипта AutoIt3


/ErrorStdOut    Позволяет перенаправить все фатальные ошибки на стандартное устройство вывода (StdOut), которое можно перенаправить в приложения, например, редактор SciTe. Этот ключ можно использовать и при запуске скомпилированных скриптов.
 

Чтобы просто запустить скрипт AutoIt с именем 'myscript.au3', используйте:
'AutoIt3.exe myscript.au3'


Форма2:  Compiled.exe [/ErrorStdOut] [params ...] 
                Выполнить скомпилированный скрипт, созданный с помощью Aut2Exe.

Форма3:  Compiled.exe [/ErrorStdOut] [/AutoIt3ExecuteScript file] [params ...] 
                Выполнить нескомпилированный скрипт с помощью ранее скомпилированного скрипта. Соответственно, нет необходимости включать файл AutoIT3.exe в скомпилированный скрипт, если необходимо также сохранить возможность запускать нескомпилированные скрипты.


Пример:

$pid = Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & @TempDir & '\file.au3"', '', @SW_HIDE)


Форма4:  AutoIt3.exe [/ErrorStdOut] /AutoIt3ExecuteLine "command line" 
                Выполнить одну строчку кода.

Пример:

Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Приветствие'', ''Привет Мир!'')"')

Иконка AutoIt не отображается в трее при использовании /AutoIt3ExecuteLine

Примечание: Правильное использование одиночных и двойных кавычек очень важно, равно как и двойных одиночных.

Форма3 и Форма4 могут быть отключены в скомпилированных скриптах при использовании директивы #NoAutoIt3Execute.