Microsoft Installer命令行字符串参数不起作用?

时间:2018-11-22 15:26:04

标签: wix windows-installer

所以我试图用我的msi运行一个完全安装,看来我可以轻松地为我拥有的参数传递一个数字,但是我似乎无法传递一个字符串...我尝试过使用单引号'和双引号“

msiexec /i 'My Installer.msi' /quiet JREPATH="c:\\BLA BLA"

这个以及单引号返回这个:

enter image description here

现在,根据本文:https://docs.microsoft.com/en-us/windows/desktop/msi/command-line-options

应该可以...

  

作为文字字符串的属性值必须用引号引起来   分数。标记之间的字符串中应包含空格。

     

msiexec / i A:\ Example.msi PROPERTY =“ Embedded White Space”

MSI没问题,我认为这是因为如果我通过一个数字..它可以工作...

msiexec /i 'My Installer.msi' /quiet JREPATH=3

最新编辑

当我在参数的值中有一个空格时,似乎出现了问题。例如,类似于以下示例的工作方式:

msiexec /i "WKFS ReportGenerator.msi" /quiet JREPATH="c:\\;;BLA"

但这不是:

msiexec /i "WKFS ReportGenerator.msi" /quiet JREPATH="c:\\;;BLA a"

最新编辑2:

如果使用简单的cmd而不是PowerShell,这些命令将空格包含在值 work 中。

2 个答案:

答案 0 :(得分:1)

如果从Powershell进行调用,则应使用调用运算符&这也应与用引号引起来的参数一起使用:

& msiexec /i `"My Installer.msi`" /quiet JREPATH=`"c:\BLA BLA`"

答案 1 :(得分:0)

  

更新:因为这与PowerShell有关。请参阅github.com上的Windows Installer PowerShell Module(向下滚动以获取描述,请使用releases tab for download)。我并没有进行太多测试,但是它来自Heath Stewart-Microsoft高级软件工程师(github)。

     

简要的在线示例

install-msiproduct .\example.msi -destination (join-path $env:ProgramFiles Example)
     

下面的内容是在我意识到与PowerShell相关的 之前编写的。


快速建议 :也许尝试以下命令行:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log" JREPATH="c:\MyPath"

摆脱指定路径中的双 \\ (可能就足够了),而改用旧式 /QN 开关 /quiet 开关中的按钮。以下是一些详细说明和细节。


静默安装 :这是什么安装程序?它是供应商包吗?我假设某种Java应用程序?这是 install a normal MSI file silently 的方法:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log"

快速说明

/L*V "C:\Temp\msilog.log"= verbose logging
/QN = run completely silently
/i = run install sequence

msiexec.exe msiexec.exe 有两种类型的开关-老式的开关,例如 /QN Command-Line Options)进行静默安装,它与您正在使用的更新的 /quiet Standard Installer Command-Line Options)相匹配。

要添加已经完成的操作,请将其添加到命令行:

msiexec.exe /i myinstaller.msi ADDLOCAL="Program,Dictionaries" SERIALKEY="1234-1234" /qn

一些其他链接