首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将stdout和stderr重定向到安装程序变量[Install4j]

将stdout和stderr重定向到安装程序变量[Install4j]
EN

Stack Overflow用户
提问于 2014-06-05 13:38:39
回答 1查看 603关注 0票数 1

我一直在使用Install4j为创建一个很酷的安装程序,并使用它做了很多事情。现在,我想知道我正在执行的带有“或批处理文件”操作的BAT文件中的命令发生了什么情况。因此,我在手册中阅读了这个Action文档,它说这个操作最终可以将STDOUT和STDERR重定向到一个安装程序变量中。因此,我创建了两个安装程序变量,stdout_response和stderr_response。这两个变量都是用默认值"default_stdout“和"default_stderr”定义的。

在“操作”中,我选择与STDOUT和STDERR响应相关的选项“重定向到安装程序变量”,并为此重定向设置安装程序变量。

我的蝙蝠文件执行了一些ECHOs,所以我认为最终会有什么东西从那里出来。

在我的“运行可执行文件或批处理文件”操作之后,我定义了一个“运行脚本”操作,其中我只执行一个System.out.println(.)在我的安装程序变量上执行下一段代码:

System.out.println(context.getVariable("stdout_response"));//打印我的变量。

当我的安装程序到达此操作时,它会打印一个空字符串"“,以便将某些内容设置到我的安装程序变量中,而不是我想要的值。

对于我的"stderr_response",值集类似于"^C“

有什么事我错过了吗。也许BAT文件必须建立一些内部重定向。

提前谢谢!

版本!添加更多信息

我的“运行可执行文件或批处理文件”操作配置

(目前还不能提交图片,但我会留下下面的链接)

配置

我的验证脚本在“运行可执行文件或批处理文件”操作之后进入“运行脚本”操作。

代码语言:javascript
复制
System.out.println("**********************************************************************************************************");
System.out.println(String.format("Test de Variable STDOUT: %s", (String)context.getVariable("script_response_stdout")));
System.out.println(String.format("Test de Variable STDERR: %s", (String)context.getVariable("script_response_stderr")));
System.out.println("**********************************************************************************************************");
return false;

我的批处理文件

代码语言:javascript
复制
@echo off
cls

set mysql_msi=%1
set mysql_svname=%2
set mysql_data_dir=%3
set mysql_install_dir=%4
set mysql_admin_user=%5
set mysql_admin_password=%6
set mysql_port=%7
set mysql_instance=%8
set mysql_exe=%9

echo mysql_msi: %mysql_msi%
echo mysql_svname: %mysql_svname%
echo mysql_admin_user: %mysql_admin_user%
echo mysql_admin_password: %mysql_admin_password%
echo mysql_port: %mysql_port%
echo mysql_instance: %mysql_instance%
echo mysql_exe: %mysql_exe%

msiexec /i %mysql_msi% /qn INSTALLDIR=%mysql_install_dir% /L* C:\MSI-MySQL-Log.txt

echo Mysql Instance Configuration

%mysql_instance% -i -q ServiceName=%mysql_svname% RootPassword=%mysql_admin_password% ServerType=DEVELOPMENT DatabaseType=MYISAM Port=%mysql_port% RootCurrentPassword=%mysql_admin_password%

echo Terminated

不能张贴更多的链接,所以我在这里评论他们!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 19:46:29

如果选择了“运行可执行文件或批处理文件”操作的“显示控制台窗口”属性,则重定向无效。

在install4j 5.1.12中,不再可能选择此组合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24061788

复制
相关文章

相似问题

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