gpt4 book ai didi

powershell - 查找通过PowerShell执行cmd命令的退出代码

转载 作者:行者123 更新时间:2023-12-04 09:06:29 27 4
gpt4 key购买 nike

我正在使用无提示安装命令来安装软件。我正在从PowerShell 3.0运行此命令。

$silentInstall = C:\Users\Admin\Documents\Setup-2.0.exe exe /s /v"EULAACCEPTED=\"Yes\" /l*v c:\install.log /qn"

Invoke-Expression $silentInstall

这将运行安装软件的命令,但它不会等待其完成,而是继续执行下一行代码。我想控制安装,以便知道安装是否完成。

如何获得 Invoke-Expression cmdlet的错误代码,以便我可以知道cmd是否成功执行?

最佳答案

看来您正在运行MSI安装程序。从控制台运行时,MSI将派生一个新进程以运行安装程序时,将立即返回控制权。无法更改此行为。

您可能需要做的是使用Get-Process查找名为msiexec的进程,并等待其完成。总是有一个msiexec进程正在运行,该进程处理启动新的安装程序,因此您需要找到在安装开始后开始的msiexec进程。

$msiexecd = Get-Process -Name 'msiexec'
C:\Users\Admin\Documents\Setup-2.0.exe exe `
/s `
/v"EULAACCEPTED=\"Yes\" /l*v c:\install.log /qn"
$myMsi = Get-Process -Name 'msiexec' |
Where-Object { $_.Id -ne $msiexecd.Id }
$myMsi.WaitForExit()
Write-Verbose $myMsi.ExitCode

关于powershell - 查找通过PowerShell执行cmd命令的退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com