在NSIS安装程序中回答用户提示

时间:2019-05-24 04:02:57

标签: windows batch-file nsis

我有一个批处理文件install_license.bat,该文件安装了我们软件的许可证。批处理文件仅运行一个Java类,该类可以完成所需的工作。批处理文件需要两个参数,即动作安装和许可证文件的路径,这两个参数又传递给java类。

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

作为安装程序的一部分,我们希望提供一个选项供用户输入许可的路径。如果用户输入路径,则以上批处理文件应作为安装过程的一部分运行,否则,应跳过许可证安装,即以上批处理不应运行。

我知道如何从安装程序中触发一批

但是,实际安装许可证的Java程序在以下行中向用户提示:

Continue with license file installation? [y/N]

基于用户输入的yesno,许可证文件的安装将继续。我无法控制该java类的工作方式,因此无法对其进行修改。

是否可以通过NSIS处理这种情况。也就是说,在运行批处理时,NSIS传递“ y”以继续安装许可证文件吗?

这是蝙蝠文件:

@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 个答案:

答案 0 :(得分:1)

要将默认结果发送到大多数内部@RestController //@RequestMapping(value = "/handler") public class ErrorController { @RequestMapping(value = "/errors") public String renderErrorPage(HttpServletRequest httpRequest) { System.out.println("DEBUG::come to error page"); return "test error"; } } 命令和某些外部命令,您只需要回显结果并将其通过管道传递给命令:

cmd