Аргументы командной строки
При запуске сценария может потребоваться передать этому сценарию некоторые входные данные. Например, каталог с файлами, которые надо обработать. Это можно сделать интерактивно, путем явного запроса значения у пользователя с использованием консоли (см. Консоль операционной системы). Но это далеко не всегда удобно. Есть еще один вариант передачи аргументов: указать их в командной строке запуска сценария (см. Командная строка «1С:Исполнителя»). Аргументы командной строки могут называться по-разному. Если они только уточняют поведение сценария (указывают рабочий каталог и обрабатываемый файл), тот в этом случае мы будет говорить, что «сценарий получает параметры». Если сценарий может выполнять различные действия, каждое из которых имеет свое мнемоническое имя, а для каждого или некоторых действий нужны какие-либо уточнения, то мы будем говорить, что «у сценария есть команды, для которых требуются параметры». Однако вполне допустимо употреблять термин «аргумент» как обобщение всего вышесказанного.
Параметры сценария — это параметры метода Скрипт() данного сценария. В командной строке сценария параметры должны быть указаны в том порядке, в каком они указаны в описании метода Скрипт(). При указании параметров необходимо соблюдать их типы. Для передачи из командной строки поддерживаются значения типа Строка, Число и Булево. Отсутствие какого-либо параметра приведет к ошибке.
Допустим, что у нас есть сценарий с единственным методом Скрипт(), у которого описаны три параметра:
метод Скрипт(Параметр1: Число, Параметр2: Строка, Параметр3: Булево)
Консоль.Записать("Параметр 1: значение = " + Строка(Параметр1) + ", тип = " + Строка(Параметр1.ПолучитьТип()))
Консоль.Записать("Параметр 2: значение = " + Строка(Параметр2) + ", тип = " + Строка(Параметр2.ПолучитьТип()))
Консоль.Записать("Параметр 3: значение = " + Строка(Параметр3) + ", тип = " + Строка(Параметр3.ПолучитьТип()))
;
Первый параметр имеет тип Число, второй — тип Строка, а последний параметр имеет тип Булево. Теперь при запуске этого сценария система «1С:Исполнитель» будет выполнять проверку количества и типов передаваемых параметров.
- Использование конструкции --%. Данная конструкция прекращает разбор командной строки. Все, что записано после этой конструкции, будет передано вызываемому приложению «как есть». С этой конструкцией пустая строка будет выглядеть следующим образом: --% "". PowerShell прекратит разбор от символа --% и до конца командной строки.
- Использование символов экранирования. В этом случае пустая строка будет записываться следующим образом: '"'" (для экранирования используются апострофы `).
Пример передачи пустой строки в качестве параметра для ранее приведенного примера сценария, сохраненного под именем test.sbsl:
PS D:\…\bin> .\executor.cmd -s test.sbsl `"`" 1 test
Параметр 1: значение = , тип = Std::String, длина = 0
Параметр 2: значение = 1, тип = Std::String, длина = 1
Параметр 3: значение = test, тип = Std::String, длина = 4
PS D:\…\bin>.\executor.cmd -s test.sbsl --% "" 1 test
Параметр 1: значение = , тип = Std::String, длина = 0
Параметр 2: значение = 1, тип = Std::String, длина = 1
Параметр 3: значение = test, тип = Std::String, длина = 4
D:\...\bin>executor -s test.sbsl "" 1 2
Параметр 1: значение = , тип = Std::String, длина = 0
Параметр 2: значение = 1, тип = Std::String, длина = 1
Параметр 3: значение = 2, тип = Std::String, длина = 1