Inno Setup:将预处理器生成的输出文件名返回到批处理脚本

Posted

技术标签:

【中文标题】Inno Setup:将预处理器生成的输出文件名返回到批处理脚本【英文标题】:Inno Setup: return output filename generated by preprocessor to a batch script 【发布时间】:2018-12-17 17:07:43 【问题描述】:

我正在设置一个批处理文件来编译我的应用程序,使用 Inno Setup 编译安装程序。 我的设置文件名是使用 Inno Setup 中的一些 ISPP 命令确定的(从构建版本创建文件名等)。 最后一步是将设置上传到我的 FTP,但为此我需要一种方法来检索 Inno Setup 生成的安装程序文件名。

有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

您可以将预处理器变量值写入文件。

一种方法是使用Exec function执行外部程序进行写入:

#define FileName "foobar"

#expr Exec( \
    "cmd.exe", "/c echo " + FileName + "> """ + SourcePath + "\filename.txt""", , , \
    SW_HIDE)

然后您可以read the file in your batch file。或者你可以让预处理器生成一个完整的 FTP 上传脚本,然后从批处理文件中执行它。


另一种方法是使用WriteIni function创建一个INI文件:

#define FileName "foobar"

#expr WriteIni(SourcePath  + "\filename.ini", "Section", "FileName", FileName)

虽然就个人而言,我会在批处理文件中生成文件名(或用更好的语言替换批处理文件),然后将其传递给 Inno Setup,而不是反过来。

【讨论】:

以上是关于Inno Setup:将预处理器生成的输出文件名返回到批处理脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Inno Setup 中获取已执行程序的输出?

Inno Setup卸载可执行文件的位置和名称

inno setup 之Deltree 用法

inno setup打包成安装文件

Inno Setup - 替换子安装程序生成的目录树

Winfrom打包教程(Inno Setup工具)