首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NSIS安装程序中回答用户提示

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

Stack Overflow用户
提问于 2019-05-24 04:02:56
回答 1查看 173关注 0票数 1

我有一个批处理文件install_license.bat,它为我们的软件安装许可证。批处理文件只运行一个java类,它可以完成所需的任务。批处理文件需要两个参数,动作安装和许可文件的路径,这些参数依次传递给java类。

代码语言:javascript
复制
C:\MySoftware\install_license.bat install "D:\documents\myLicense.lic"

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

我知道如何从安装程序内部发射一批。

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

代码语言:javascript
复制
Continue with license file installation? [y/N]

基于用户输入yesno,许可证文件的安装将继续进行。我无法控制这个java类是如何工作的,我不能修改它。

有没有办法处理这个国家统计局的案子。也就是说,当运行批处理时,NSIS通过"y“来继续安装许可文件?

以下是bat文件:

代码语言:javascript
复制
@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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 08:17:30

要向大多数内部cmd命令和一些外部命令发送默认结果,只需回显结果并将其输送到命令:

代码语言:javascript
复制
echo y|call "%_MY_JAVA%" %LICENSE_PARAMETER% -DCONSOLE_HOME=. -Dlog4j.configuration=log4j.xml -cp %CLASSPATH% org.somepackage.MyClass %CMD_LINE_ARGS%
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56285707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档