所以我试图用我的msi运行一个完全安装,看来我可以轻松地为我拥有的参数传递一个数字,但是我似乎无法传递一个字符串...我尝试过使用单引号'和双引号“
msiexec /i 'My Installer.msi' /quiet JREPATH="c:\\BLA BLA"
这个以及单引号返回这个:
现在,根据本文: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 中。
答案 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
一些其他链接 :