batch-file - 使用 NSIS 的 ExecDos 插件获取批处理脚本 exitCode
问题描述
如何从批处理文件中获取 exitCode(以及写入 DetailView 窗口的输出)?
从文档中:
如果您想获得退出代码,请使用“等待”调用。(/NOUNLOAD 是强制性的!)
所以是这样的:
ExecDos::wait /NOUNLOAD /DETAILED "$INSTDIR\bin\checkJavaVersion.bat"
(我还没有处理指定输出到哪个窗口)
如何访问 exitCode?
解决方案
先有你exec
,后有你wait
。wait
不会启动该过程,因此您无法将命令行传递给它。您链接到的文档有一个示例:
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"
推荐阅读
- ios - 当模块未缓存时,“无法为 iOS 框架中的 C 静态库构建 Objective-C 模块”
- jenkins - 使用 Jenkins 获取 HTTP ERROR 404 时如何隐藏/删除码头版本
- javascript - Vue JS 返回 [__ob__: Observer] 数据而不是我的对象数组
- git - 如何获取 Libre Office Writer 保存的文件的有用 git diff,并在命令行中输出?
- julia - 在 Julia 中,数组访问的循环很慢
- swift - 正则表达式以防止重复的字符或数字
- javascript - 愿望清单按钮仅在强制页面刷新时有效,在选择日历日期时无效
- docker - 为什么我不能在 Dockerfile 中打印带有 echo 的 ARG?
- r - 如何将数据从 SparkR 插入到 hadoop 集群中的 Hbase
- jquery - 如何在 JSP 中查找开始和结束正文标记