2014-01-25 44 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