我想在 Inno Setup 编译过程开始时调用一个批处理文件。即在它开始编译之前,执行一个外部操作。这是可能的还是我的外部活动应该包装 Inno Setup 编译过程?
问问题
4790 次
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 回答