使用 NSIS 的 ExecDos 插件获取批处理脚本 exitCode

Posted

技术标签:

【中文标题】使用 NSIS 的 ExecDos 插件获取批处理脚本 exitCode【英文标题】:Get batch script exitCode with ExecDos Plugin from NSIS 【发布时间】:2018-06-07 10:17:33 【问题描述】:

如何从批处理文件中获取 exitCode(以及写入 DetailView 窗口的输出)?

来自documention:

如果您想获得退出代码,请使用“等待”调用。 (/NOUNLOAD 是强制性的!)

所以是这样的:

ExecDos::wait /NOUNLOAD /DETAILED "$INSTDIR\bin\checkJavaVersion.bat"

(我还没有处理指定输出到哪个窗口)

如何访问 exitCode?​​p>

【问题讨论】:

【参考方案1】:

您首先是 exec,然后是 waitwait 不会启动该进程,因此您无法将命令行传递给它。您链接到的文档有一个示例:

ExecDos::exec /NOUNLOAD /ASYNC "$EXEDIR\consApp.exe" "test_login$\ntest_pwd$\n" "$EXEDIR\execdos.log"
Pop $0 # thread handle for wait
# you can add some installation code here to execute while application is running.
ExecDos::wait $0
Pop $1 # return value
MessageBox MB_OK "Exit code $1"

【讨论】:

以上是关于使用 NSIS 的 ExecDos 插件获取批处理脚本 exitCode的主要内容,如果未能解决你的问题,请参考以下文章

NSIS 插件篇

NSIS(001)检测和结束进程是否运行?

如何使用 nsis 获取多个显卡信息?

nsis现代化安装界面无法弹出

使用NSIS获取AutoCAD的安装路径

如何在 Nsis 中创建 zip 文件