在InstallShield中调用批处理文件其实是安装打包中很常用的一种手段,通过批处理启动服务,进行数据库初始配置等等。
 
在实际操作中,针对不同工程类型,对批处理的调用还是有很多疑惑困扰着大家,撰写此文希望能帮助到那些被困扰的打包开发人员。
这里假设我们的需求是要启动安装路径下的批处理文件Sample.bat。
 
InstallScript工程
这种类型调用批处理相对简单,通过LaunchAppAndWait函数进行调用,下面是简单示例: 
 
    szProgram = TARGETDIR ^ "sample.bat";  
    szParam = ""
    
LaunchAppAndWait(szProgram, szParam, LAAW_OPTION_WAIT LAAW_OPTION_HIDDEN); 

Basic MSI工程
MSI工程中对于批处理的调用较复杂,我们逐步说明如何操作:
 
    1. 通过Custom Action Wizard添加一个CA,启动向导
    2. 在Basic Information界面中为CA命名
    3. 在Action Type界面中指定Type为Launch an Executable;Location选择Stored in the Directory table
    4. 在Action Parameters界面中,Source选择INSTALLDIR,Target中输入内容:"[SystemFolder]cmd.exe" /c "[INSTALLDIR]Sample.bat"
    5. Additional Options界面默认
    6. 在Respond Options界面中,In-Script Execution选择Deferred Execution
    7. 在Insert into Sequence界面中,将CA插入到InstallFinalize之前,并设定Install Execute Condition为:Not Installed
    8. 其余默认
 
转载自Kevin.Wan博客 http://www.cnblogs.com/installshield
更多Installshield技术交流问题,可查看Appinstall中文论坛(www.appinstall.cn)