J'ai téléchargé Powerbi 32 bit
et 64 bit
fichiers .msi de https://powerbi.microsoft.com/en-us/downloads/
et créé sous script.
$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
Script fonctionne parfaitement que si le source directory/$ScriptDir
ne dispose pas d'espace entre les deux. par exemple si le répertoire source est c:/test
ou c:/test_test/test
cela fonctionne parfaitement.
Mais si le source directory/$ScriptDir
a des espaces, il se bloque avec une erreur d'option msi ci-dessous
par exemple si source directory/$ScriptDir
est C:\Users\Dell\Desktop\New folder
script Powershell se bloque au message ci-dessus .. encore aucune installation.
i ont ajouté écho à la fin du script pour trouver le chemin $ScriptDir
et ci-dessous donne résultat d'écho qui me rend plus confus.
C:\Users\Dell\Desktop\New folder
Vous ne savez pas pourquoi msiexec.exe ne peut pas exécuter d'arguments lorsqu'il y a un espace.
S'il vous plaît aidez-moi à fuir Quelle pourrait être la raison? Comment cela pourrait-il être corrigé même si $ ScriptDir a des espaces?
C'était super amusant :) appris à utiliser des guillemets échappés ("") – user879