在编译Inno Setup脚本时是否可以调用批处理文件?

时间:2012-05-09 09:33:03

标签: compilation inno-setup

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

2 个答案:

答案 0 :(得分:12)

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

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

如果您的命令接受参数,则必须将其写为:

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

您也可以从批处理文件中运行它,然后调用安装程序编译器。

答案 1 :(得分:1)

作为接受的答案的补充,以下是Exec()的文档,以防帮助页面出现故障。

Inno Setup预处理器:Exec

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

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

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

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

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

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

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

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