0

(很抱歉没有更简洁地措辞——我不知道如何总结它。)

我有一个很大的源文件目录——所有的 MSI 文件。与其为每个文件编写单独的命令行脚本,我更愿意:

  1. 使用 *.msi 模式匹配(或类似的)调用它们中的所有......并让它们中的每一个都使用“/passive /norestart”运行。

  2. (可选)还包括“/liew”参数,并替换为“[文件名的第一部分].log”

我已经尝试过:

FORFILES /P 3DxSoftware64\. /M *.msi /S /C "msiexec @path /passive /norestart"  

...但它失败了;它只是启动“MSIEXEC /?”的对话框选项;实际上并没有调用文件 @path 本身。但是,如果我删除整个 "/C '...'" 字符串,那么它正确地回显文件名(带有完整路径)。

我尝试了各种管道结果的方法,例如

/C echo @path | msiexec

但它不起作用。

有任何想法吗?
我的消息来源,这导致了我这一点: - http://www.ss64.com/nt/forfiles.html

感谢您的帮助!!
- 约瑟夫

4

1 回答 1

2

也许您错过了选项对话框的这一部分:

…
Install Options
    </package | /i> <Product.msi>
        Installs or configures a product
…

这意味着您错误地调用了安装包。代替

msiexec @path …

它应该是

msiexec /package @path …

或者

msiexec /i @path …
于 2012-07-06T05:24:13.443 回答