2014-01-25 48 views
2

我試圖在我們的Win2008實例上安裝32位和64位版本的Visual Studio 2005作爲Powershell腳本的一部分。當我嘗試不中斷地安裝兩個EXE文件時,第二個EXE(x86)不會執行,因爲x64還沒有完成安裝。排隊MSI安裝 - 通過Powershell

因此,我在每次調用後加入了5秒的睡眠時間,現在似乎可以工作。不過,我對這個解決方案並不滿意,因爲它看起來更像是一種解決方法,而不是處理手頭任務的正確方法。

有沒有更好的方法來做到這一點 - 也許排隊的文件進行安裝 - 所以他們一個接一個地執行?

下面是特定的代碼行:

if ($OSArchitecture -eq "64-bit") 
    { Write-Output "Found 64-bit OS. Installing both VC++ files for compat" 
     start-process .\vcredist_x64.exe /Q 
     start-sleep 5 
     start-process .\vcredist_x86.exe /Q  
     start-sleep 5 
    } 

回答

1

必須使用開始處理-Wait參數。

- 等待指定的過程在接受更多輸入之前完成。該參數禁止命令 提示或保留該窗口,直到過程完成。

+0

或者調用cmd.exe並使用它的等待函數 - 'cmd/c start/wait。\ vcredist_x64.exe/Q' - 無論哪種方式,您在獲取 - 等待排序。 –

+0

「-Wait」參數與廣告一致!非常感謝Knuckle-Dragger。 – urover