我正在尝试制作PowerShell脚本以在一台计算机上安装多个程序,但是我希望它报告安装成功还是失败。
我没有使用PowerShell的经验,并且尝试了我可以在StackOverflow和Google上找到的所有内容,但这对我来说没有意义。
$install = Start-Process -FilePath "path" -ArgumentList "/qb" -Wait
if ($install.ExitCode -eq 0) {
Write-Host "Install Successful"
} else {
Write-Host "Install Failed"
}
答案 0 :(得分:0)
将参数-PassThru
添加到Start-Process
,以便cmdlet实际上输出可分配给变量$install
的过程对象。您拥有的代码无法执行此操作,因此$install
为空,并且检查空变量上的属性ExitCode
显然无法满足您的期望。您可能还想使用/qn
(无UI)而不是/qb
(基本UI)进行无人参与的安装。
这应该做您想要的:
$install = Start-Process -FilePath 'path' -ArgumentList '/qn' -Wait -PassThru
if ($install.ExitCode -eq 0) {
Write-Host "Install Successful"
} else {
Write-Host "Install Failed"
}
话虽如此,您问题中张贴的代码显然不可能完全没有输出。无论安装是否成功,应该都显示“安装失败”,因为$install
为空,$install.ExitCode -eq 0
的计算结果为$null -eq 0
,转为$false
。