PowerShell:等待第一个命令完成
我们知道,PowerShell 顺序执行命令,直到我们指定一些并行作业,但有时下一条命令先于第一条命令执行,因为第一条命令可能需要很长时间来检索数据。在这种情况下,如果您希望先完成上一条命令,然后再执行下一条命令,则可以使用 PowerShell 的作业功能。
例如,我们需要编写一段脚本,要求用户输入以终止进程 ID,但程序应该首先检索进程 ID。
示例
$job = Start-Job {Get-Process} Wait-Job $job | Out-Null Receive-Job $job $id = Read-Host "Enter the Process ID to terminate the Process " Stop-Process -Id $id -PassThru -Verbose
在以上示例中,我们正在 Start-Job 命令内部启动一个 PowerShell 进程作业,并使用 Wait-Job 命令等待它继续进行,直到它使用 Get-Process 命令得以执行。一旦 Get-Process
命令执行完成,将使用 Receive-Job 命令显示输出,然后在下一步,它要求进程 ID 终止特定进程。
广告