我想在Inno Setup编译过程开始时调用批处理文件。即在开始编译之前,执行外部操作。这是可能的还是我的外部活动应该包装Inno Setup编译过程?
答案 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)。
如果忽略第四个参数或该参数不为零,则该函数返回该进程的退出代码。否则,函数结果将指示该进程是否已成功启动(非零表示成功)。