【发布时间】:2018-03-23 19:35:45
【问题描述】:
我从https://powerbi.microsoft.com/en-us/downloads/下载了Powerbi 32 bit和64 bit msi文件
并在脚本下方创建。
$ScriptDir = (Split-Path $MyInvocation.MyCommand.Path)
$MSIArguments = @(
"/i"
"$ScriptDir\PBIDesktop.msi"
"/qn"
# "/norestart"
"ACCEPT_EULA=1"
)
$MSIArguments2 = @(
"/i"
"$ScriptDir\PBIDesktop_x64.msi"
"/qn"
# "/norestart"
"ACCEPT_EULA=1"
)
$architecture=gwmi win32_processor | select -first 1 | select addresswidth
if ($architecture.addresswidth -eq "64"){
Start-Process "msiexec.exe" -ArgumentList $MSIArguments2 -wait
}
elseif ($architecture.addresswidth -eq "32"){
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -wait
}
$ScriptDir
只有当source directory/$ScriptDir 之间没有空格时,脚本才能完美运行。
例如,如果源目录是c:/test 或c:/test_test/test,它可以完美运行。
但如果source directory/$ScriptDir 有空格,它会挂起并显示下面给出的 msi 选项错误
例如,如果source directory/$ScriptDir 是C:\Users\Dell\Desktop\New folder,则 powershell 脚本在上述消息处挂起
..还没有安装。
我在脚本末尾添加了 echo 以查找路径 $ScriptDir
它给出了下面的回声结果,这让我更加困惑。
C:\Users\Dell\Desktop\New folder
不确定为什么 msiexec.exe 在有空格时无法运行参数。
请帮我弄清楚可能是什么原因?即使 $ScriptDir 有空格,如何解决这个问题?
【问题讨论】:
标签: powershell scripting windows-installer