如何在批处理脚本上从Exec调用获取ResultCode?

时间:2016-06-24 09:29:06

标签: windows batch-file cmd inno-setup

我的脚本中有以下代码行,而不是直接调用exe,而是调用批处理文件。

Exec(ExpandConstant('{app}\App\bin\migrate.bat'), '', '', sw_show, ewWaitUntilTerminated, ResultCode);

批处理文件看起来像这样(最重要的东西主要用于调试目的,但可能稍后会包含某种用户交互)。

echo %path%
echo %cd%
migrate.exe Obfuscate.dll /verbose /startupConfigurationFile="..\Web.config
pause

我是否希望从migrate.exe获取返回代码并将其作为ResultCode返回,就像通常从直接调用exe获得的那样,我将如何进行此操作?

1 个答案:

答案 0 :(得分:4)

我没有Inno-Setup的经验以及它如何处理这种情况,但是从批处理脚本的一侧,你通常会做这样的事情(根据你的具体例子量身定做):

echo %path%
echo %cd%
migrate.exe Obfuscate.dll /verbose /startupConfigurationFile="..\Web.config
set rc=%ERRORLEVEL%
pause
exit /b %rc%

当然假设migrate.exe在成功时返回0,否则返回非零,并且Inno-Setup的Exec调用分别将这样的返回值解释为“true”和“false”(机会很好,因为它是“标准”,但YMMV)。