as9*_*876 5 powershell process
我正在使用 PowerShell 语法:
Start-Process -FilePath $file -ArgumentList $argList -NoNewWindow -Wait
Run Code Online (Sandbox Code Playgroud)
正在启动的进程是一个安装程序,它安装 Windows 服务,然后启动该服务,然后该进程停止。发生的情况是我的脚本无限期挂起,即使在进程成功完成并且进程已退出之后(正如我在任务管理器中看到的那样。当我从命令行运行它时,没有 PowerShell,它在一分钟内完成)。显然,它仍在等待,因为有一个从原始进程生成的子进程。如何告诉 PowerShell 仅等待初始进程 ($file) 而不是任何子进程?
谢谢
最后,我决定简单地以 .NETy 方式进行,尽管我更喜欢 Powershelly 方式。下面的代码是从/sf/answers/613344791/复制的:
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = $file
$pinfo.UseShellExecute = $false
$pinfo.Arguments = $argList
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
Write-Host "exit code: " + $p.ExitCode
Run Code Online (Sandbox Code Playgroud)
这种方式没有问题。
| 归档时间: |
|
| 查看次数: |
2401 次 |
| 最近记录: |