Get-Url http://dl.google.com/chrome/install/375.126/chrome_installer.exe c:\temp\chrome_installer.exe;
c:\temp\chrome_installer.exe /silent /install;
我有以下内容。但是我也想在chrome之后安装其他应用程序。这是一个正确的方法还是我有问题,因为powershell不知道何时安装完成以及何时启动另一个安装?
我应该改用MSI路线吗?
答案 0 :(得分:3)
您可以将Start-Process
与-Wait
参数一起使用,大多数安装文件都可以使用此方法,但是如果安装程序打开其他文件并自行关闭,则此操作无效(因为PowerShell只等待安装程序关闭)
我没有Get-Url函数来测试以下代码,但它应该有效:
第一个Start-Process
将启动Chrome的安装程序,而不是在运行第二个Start-Process
之前等待窗口关闭。
Get-Url http://dl.google.com/chrome/install/375.126/chrome_installer.exe c:\temp\chrome_installer.exe
Start-Process -FilePath 'c:\temp\chrome_installer.exe' -ArgumentList '/silent', '/install' -Wait
Start-Process -FilePath 'C:\temp\DifferentProgram.exe' -ArgumentList '/argument' -Wait
答案 1 :(得分:1)
很抱歉,我无法评论@Bluestacks回答
您可以使用以下命令包装命令:
$appsetup = Start-Process -FilePath 'c:\temp\chrome_installer.exe' -ArgumentList '/silent', '/install' -PassThru -Wait
然后使用.exitcode测试成功完成(确保使用-PassThru)
If ($appsetup.exitcode -eq 0)
write-host "Install completed without errors"
如果您需要更实质的尝试PowerShell App Deployment ToolKit on Gitub