12

我想在 Inno Setup 编译过程开始时调用一个批处理文件。即在它开始编译之前,执行一个外部操作。这是可能的还是我的外部活动应该包装 Inno Setup 编译过程?

4

2 回答 2

17

如果你安装了 Inno 的 ISPP(它现在是内置的),那么你可以使用Exec()预处理器功能来运行你的批处理文件。编译将暂停,直到它返回(将其放在文件的开头)。

#expr Exec("c:\file.bat")

如果您的命令带有参数,则必须将其编写为:

#expr Exec('c:\my_cmd.exe','some_argument') 

您还可以从批处理文件运行它,然后调用设置编译器。

于 2012-05-09T16:26:14.413 回答
2

作为已接受答案的附录,这里是Exec()的文档,以防帮助页面出现故障。

Inno 设置预处理器:Exec

原型
int Exec(str 1, str? 2, str? 3, int? 4, int? 5)

说明
执行指定的可执行文件。

第一个参数指定要执行的模块的文件名。

第二个参数可用于指定要执行的命令行。

第三个参数可用于指定进程的工作目录。

如果您不希望等待该过程完成,则第四个参数应设置为零,否则应设置为非零。默认情况下,假定非零值。

第五个参数可以是 ISPPBuiltins.iss 文件中定义的任何 SW_* 常量。对于 GUI 进程,它指定第一次调用 ShowWindow 时的默认值。默认情况下,假定为 SW_SHOWNORMAL(即 1)。

如果第四个参数被省略或不为零,则函数返回进程的退出代码。否则,函数结果指示进程是否已成功启动(非零表示成功)。

于 2019-02-07T14:33:43.743 回答