您的位置:首页 > 其它

NSIS安装msi文件

2015-01-09 18:44 351 查看
安装包中需要安装ActivePerl-5.10.0.1002-MSWin32-x86-283697.msi文件,用Exec/ExeWait/ExeShell直接调用都不行,google了一下发现baidu里其实有讲:

Windows (R) Installer. V 3.01.4000.1823 

msiexec /Option <Required Parameter> [Optional Parameter]

安装选项

</package | /i> <Product.msi>

安装或配置产品
/a <Product.msi>
管理安装 - 在网络上安装产品
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
播发产品 - m 播发到所有用户,u 播发到当前用户
</uninstall | /x> <Product.msi | ProductCode>

  卸载产品
显示选项
     /quiet

      安静模式,无用户交互

      /passive

      无从参与模式 - 只显示进程栏

      /q[n|b|r|f]

      设置用户界面级别

       n - 无用户界面

       b - 基本界面

       r - 精简界面

       f - 完整界面(默认值)

     /help

     帮助信息
重新启动选项
/norestart

  安装完成后不重新启动

/promptrestart

  提示用户重新启动(如果必要)

/forcerestart

  安装后总是重新启动计算机
日志选项

/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>

  i - 状态消息

  w - 非致命警告

  e - 全部错误消息

  a - 操作的启动

  r - 操作特定记录

  u - 用户请求

  c - 初始界面参数

  m - 内存不足或致命退出信息

  o - 磁盘空间不足消息

  p - 终端属性

  v - 详细输出

  x - 额外调试信息

  + - 扩展到现有日志文件

  ! - 每一行刷新到日志

  * - 记录所有信息,除了 v 和 x 选项

/log <LogFile>

  与 /l* <LogFile> 相同
更新选项
/update <Update1.msp>[;Update2.msp]

  应用更新

/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>

  删除产品的更新
修复选项

/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>

  修复产品

  p - 仅当文件丢失时

  o - 如果文件丢失或安装了更旧的版本(默认值)

  e - 如果文件丢失或安装了相同或更旧的版本

  d - 如果文件丢失或安装了不同版本

  c - 如果文件丢失或较验和与计算的值不匹配

  a - 强制重新安装所有文件

  u - 所有必要的用户特定注册表项(默认值)

  m - 所有必要的计算机特定注册表项(默认值)

  s - 所有现有的快键方式(默认值)

  v - 从源运行并缓存本地数据包

设置公共属性

[PROPERTY=PropertyValue]

请查阅 Windows (R) Installer SDK 获得有关

命令行语法的其他文档。

额,一下子没看懂格式到底怎么写,查了半天发现了例子,于是知道怎么写了:

ExecWait '"msiexec" /package "ActivePerl-5.10.0.1002-MSWin32-x86-283697.msi"  /qf'

尝试了半天安装参数里的/i不行,/package 倒是可以的

如上是第一种方法

 

方法二:使用nsis官方插件库:ExecCmd::exec

 具体使用请google
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nsis