问题描述
在我的 powershell 脚本中,我需要运行 msiexec 并传递几个参数来初始化它.问题是,如果参数包含空格字符",powershell 不会正确执行 msiexec.例如命令:
in my powershell script, I need to run msiexec and pass few parameters to initialize it. The problem is, that if a parameter contains space character " ", powershell doesn't execute msiexec correctly. For example the command:
msiexec /i .\Setup.msi ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False"
参数 ConnectionString 包含空格,这会导致 msiexec 未正确执行,我收到 msiexec 错误代码 1639 - 无效的命令行参数.如果我从连接字符串中删除空格,则 msiexec 会正确执行.
The parameter ConnectionString contains spaces, and this causes that msiexec is not executed correctly, I get msiexec error code 1639 - Invalid command line argument. If I remove spaces from from connection string, msiexec is executed correctly.
有人知道如何解决吗?
推荐答案
试试这个方法:
Start-Process -FilePath msiexec -ArgumentList / /i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'" -Wait
这篇关于Powershell:使用动态创建的参数运行 msiexec的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!