Ответ на приглашение пользователя из установщика NSIS - PullRequest
1 голос
/ 24 мая 2019

У меня есть пакетный файл install_license.bat, в котором устанавливаются лицензии на наше программное обеспечение.Пакетный файл просто запускает Java-класс, который делает то, что нужно.А пакетному файлу нужны два параметра: действие install и путь к файлу лицензии, которые, в свою очередь, передаются в класс java.

C:\MySoftware\install_license.bat install "D:\documents\myLicense.lic"

Как часть нашего установщика, мы хотим дать пользователю возможность ввестипуть к лицензии.Если пользователь вводит путь, указанный пакетный файл должен запускаться как часть процесса установки, а если нет, то установка лицензии должна быть пропущена, т. Е. Вышеупомянутый пакетный запуск не должен выполняться.

Я знаю, как запустить пакет из установщика.

Однако java-программа, которая фактически устанавливает лицензию, выдает пользователю приглашение в строках:

Continue with license file installation? [y/N]

На основании ввода пользователем yes или no установкифайла лицензии продолжается.У меня нет контроля над тем, как работает этот класс Java, и я не могу его изменить.

Есть ли способ справиться с этим делом из NSIS.То есть при запуске пакета NSIS передает «y» для продолжения установки файла лицензии?

Вот файл bat:

@REM install_license.bat
@ECHO off

setlocal

set CMD_LINE_ARGS=

REM Gather all command line switches
:next_parm
IF [%1] == [] GOTO break_parm
    set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
        SHIFT /1
        GOTO next_parm
:break_parm

set LICENSE_PARAMETER=-Dinstalled.licenses.file="%INSTALLED_LICENSE_PATH%"

call "%_MY_JAVA%" %LICENSE_PARAMETER% -DCONSOLE_HOME=. -Dlog4j.configuration=log4j.xml -cp %CLASSPATH% org.somepackage.MyClass %CMD_LINE_ARGS%
endlocal

1 Ответ

1 голос
/ 24 мая 2019

Чтобы отправить результат по умолчанию большинству внутренних cmd команд и некоторым внешним командам, вам просто нужно отобразить результат и передать его команде:

echo y|call "%_MY_JAVA%" %LICENSE_PARAMETER% -DCONSOLE_HOME=. -Dlog4j.configuration=log4j.xml -cp %CLASSPATH% org.somepackage.MyClass %CMD_LINE_ARGS%
...