我下載了Powerbi 32 bit
和64 bit
msi文件從https://powerbi.microsoft.com/en-us/downloads/
並創建下面的腳本。
$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腳本掛起,在上述消息 ..還沒有安裝。
我已經在腳本的末尾添加回聲尋找路徑$ScriptDir
,它給下面的回聲結果這讓我更加混亂。
C:\Users\Dell\Desktop\New folder
不確定爲什麼msiexec.exe無法在有空格時運行參數。
請幫我解釋一下可能是什麼原因?即使$ ScriptDir有空格,如何解決這個問題?
這是超好玩的:)學會了如何使用轉義引號(「」) – user879