从 NSIS 安装程序中回答用户提示
Answering a user prompt from within NSIS installer
我有一个批处理文件 install_license.bat
可以为我们的软件安装许可证。批处理文件只是 运行s a java class 来完成所需的工作。批处理文件需要两个参数,安装操作和许可证文件路径,这两个参数依次传递给 java class.
C:\MySoftware\install_license.bat install "D:\documents\myLicense.lic"
作为安装程序的一部分,我们希望为用户提供一个选项,让其输入许可路径。如果用户输入路径,上面的批处理文件应该 运行 作为安装过程的一部分,如果没有,则应该跳过许可证安装,即上面的批处理不应该 运行.
我知道如何从安装程序中启动批处理。
但是,实际安装许可证的 java 程序会在以下几行提示用户:
Continue with license file installation? [y/N]
根据用户输入 yes
或 no
,继续安装许可证文件。我无法控制 java class 的工作方式,我无法修改它。
有没有办法从 NSIS 处理这种情况。即运行ning批处理时,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
要将默认结果发送到大多数内部 cmd
命令和一些外部命令,您只需回显结果并将其通过管道传递给命令:
echo y|call "%_MY_JAVA%" %LICENSE_PARAMETER% -DCONSOLE_HOME=. -Dlog4j.configuration=log4j.xml -cp %CLASSPATH% org.somepackage.MyClass %CMD_LINE_ARGS%
我有一个批处理文件 install_license.bat
可以为我们的软件安装许可证。批处理文件只是 运行s a java class 来完成所需的工作。批处理文件需要两个参数,安装操作和许可证文件路径,这两个参数依次传递给 java class.
C:\MySoftware\install_license.bat install "D:\documents\myLicense.lic"
作为安装程序的一部分,我们希望为用户提供一个选项,让其输入许可路径。如果用户输入路径,上面的批处理文件应该 运行 作为安装过程的一部分,如果没有,则应该跳过许可证安装,即上面的批处理不应该 运行.
我知道如何从安装程序中启动批处理。
但是,实际安装许可证的 java 程序会在以下几行提示用户:
Continue with license file installation? [y/N]
根据用户输入 yes
或 no
,继续安装许可证文件。我无法控制 java class 的工作方式,我无法修改它。
有没有办法从 NSIS 处理这种情况。即运行ning批处理时,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
要将默认结果发送到大多数内部 cmd
命令和一些外部命令,您只需回显结果并将其通过管道传递给命令:
echo y|call "%_MY_JAVA%" %LICENSE_PARAMETER% -DCONSOLE_HOME=. -Dlog4j.configuration=log4j.xml -cp %CLASSPATH% org.somepackage.MyClass %CMD_LINE_ARGS%