首页 > 解决方案 > Inno Setup:将预处理器生成的输出文件名返回到批处理脚本

问题描述

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

有没有办法做到这一点?

标签: ftpinno-setup

解决方案


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

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

#define FileName "foobar"

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

然后,您可以读取批处理文件中的文件。或者您可以让预处理器生成一个完整的 FTP 上传脚本,然后从批处理文件中执行它。


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

#define FileName "foobar"

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

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


推荐阅读