Вместо того, чтобы использовать сценарий оболочки для взаимодействия с пользователем, используйте IA для сбора необходимых ответов, заполните их переменными IA, а затем используйте эти переменные в одном или нескольких действиях «Выполнение сценария/пакетного файла» для выполнения работы после установки.
Скажем, вы хотите собрать имя, фамилию и телефон, а затем записать их в файл в каталоге установки (надуманный, я знаю, но, надеюсь, показательный).
- Добавьте метку перехода и назовите ее, например, «Получить информацию о пользователе».
- Добавьте действие консоли «Получить пользовательский ввод», чтобы прочитать имя. Назначьте результат
$FIRST_NAME$
.
- Добавьте действие консоли «Получить пользовательский ввод», чтобы прочитать фамилию. Назначьте результат
$LAST_NAME$
.
- Добавьте действие консоли «Получить пользовательский ввод», чтобы прочитать номер телефона. Назначьте результат
$PHONE_NUMBER$
.
- Добавьте действие «Перейти к цели» со СЛЕДУЮЩИМ действием перехода «Получить информацию о пользователе» (№ 1 выше). Добавьте правила для проверки этих трех переменных, чтобы результат
TRUE
выполнял переход к «Получить информацию о пользователе». Другими словами, ПЛОХОЕ имя, ПЛОХАЯ фамилия или ПЛОХОЙ номер телефона должны оцениваться как TRUE
. Это вернет пользователя к целевой метке «Получить информацию о пользователе». Три допустимых значения должны оцениваться как ложные, таким образом НЕ выполняя прыжок. Я знаю. Это странно.
- Наконец, добавьте столько действий «Выполнить сценарий/пакетный файл», сколько необходимо для каждой целевой платформы установки. Для каждого из этих действий добавьте правило, ограничивающее выполнение этого действия определенной платформой. Для действий Unix/Linux обязательно установите флажок «Не заменять неизвестные переменные», иначе IA заменит ВАШИ переменные скрипта пробелами. (предостережение: используйте форму полного имени переменной
${MY_VARIABLE_NAME}
, чтобы помочь IA отличить ваши переменные от своих собственных).
Версия Unix/Linux может выглядеть так:
#!/bin/sh
echo <<EOF
Name: $FIRST_NAME$ $LAST_NAME$
Phone: $PHONE_NUMBER$
EOF > $USER_INSTALL_FOLDER$$/$userName.txt
Версия для Windows аналогична:
echo "Name: $FIRST_NAME$ $LAST_NAME$" > $USER_INSTALL_FOLDER$$/$userName.txt
echo "Phone: $PHONE_NUMBER$" >> $USER_INSTALL_FOLDER$$/$userName.txt
Обратите внимание на использование $/$
, которое IA преобразует в соответствующий разделитель пути для текущей платформы.
После действий «Выполнить скрипт/пакетный файл» вы можете добавить шаги для оценки успеха скрипта/пакетного файла. Добавьте правила для действий «Перейти к цели», чтобы оценить значение $EXECUTE_EXITCODE$
. $EXECUTE_EXITCODE$
— это переменная по умолчанию, в которой код выхода процесса хранится с помощью действий «Выполнить скрипт/пакетный файл».
Реальные сценарии установки могут быть более сложными. Вы можете собрать любое количество переменных и использовать их в любом количестве сценариев после установки. Затем эти сценарии сосредотачиваются на выполнении работы, а не на общении с пользователем. Это должно быть работой ИА.
Две прощальные мысли:
Во-первых, этот же метод можно использовать и с установщиком с графическим интерфейсом. Фактически, смешивание действий ввода с графическим интерфейсом и консолью в одном и том же проекте расширяет ваш установщик как на графические, так и на консольные целевые платформы. Сценарии после установки остаются неизменными независимо от того, как вы собираете входные данные.
Наконец, вы должны задать свои вопросы (если возможно) во время предварительной установки. Таким образом, пользователь может отказаться от установки, если он не может или не хочет отвечать на вопросы. Задавание вопросов во время после установки может привести к зависанию установки или вынудить пользователя откатиться, если он не хочет или не может предоставить нужную вам информацию.
person
tdfunk
schedule
29.05.2013