InstallShield中如何调用批处理文件
InstallScript工程:
这种类型调用批处理相对简单,通过LaunchAppAndWait函数进行调用,下面是简单示例:
szProgram =TARGETDIR ^"copy.bat";
szParam ="";
LaunchAppAndWait(szProgram, szParam, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);
szParam ="";
LaunchAppAndWait(szProgram, szParam, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);
ps:变量定义在begin之前,变量实例化是在begin之后
下面是具体应的实例的图片

Basic MSI工程:
MSI工程中对于批处理的调用较复杂,我们逐步说明如何操作:
- Desinoner(安装设计器)模式选择-> Behavior And Logic(行为和逻辑)->自定义操件和顺序

- Custom Action Wizard添加一个CA,启动向导(选中自定义操件和顺序,在右边可以看到Custom Actions,选中它右击就可以看到Custom Action Wizard,点击一下,再点下一步)在Basic Information界面中为CA命名
- 在Action Type界面中指定Type为Launch an Executable;Location选择Stored in the Directory table
- 在Action Parameters界面中,Source选择INSTALLDIR,Target中输入内容:"[SystemFolder]cmd.exe" /c "[INSTALLDIR]Sample.bat"
- Additional Options界面默认
- 在Respond Options界面中,In-Script Execution选择Deferred Execution
- 在Insert into Sequence界面中,将CA插入到InstallFinalize之前,并设定Install Execute Condition为:Not Installed
点中Browse,进行如下图设定
- 其余默认
ps:以下测试是在下InstallShield 2010下测试通过的
参考
网址:http://www.cppblog.com/alantop/archive/2011/04/18/144430.html

浙公网安备 33010602011771号