我正在启动多个作业(使用 Start-Job),在我的脚本结束时,我检查作业是否已经运行超过 X 秒。然后我想接受正在运行和失败的作业并重新启动它们直到它们成功。
作业以我想要运行的服务器命名(例如测试连接)。 我的问题是我不知道如何重新提交作业!
get-job | where { $_.state -eq "running" } | remove-job -force | start-job -ScriptBlock { echo $_ }
- 如何将失败/挂起的作业的名称通过管道传递给我正在开始的新作业?
- 我如何才能等待删除作业完成才能继续开始作业?
亲切的问候:)
最佳答案
重启失败作业的一种方法:
Start-Job -Name Foo -ScriptBlock {
$ErrorActionPreference = 'Stop'
Get-Item C:\DoesNotExists
} | Wait-Job > $null
Get-Job | ? { $_.State -eq 'Failed' } | % {
Start-Job -Name $_.Name -ScriptBlock { iex $args[0] } -ArgumentList $_.Command | Wait-Job | Receive-Job
}
关于powershell - 重新提交挂起作业 (start-job),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9745733/