powershell - 重新提交挂起作业 (start-job)

标签 powershell start-job

我正在启动多个作业(使用 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/

相关文章:

Powershell脚本将文件夹中所有文件的名称更改为文件夹名称

sorting - 从CSV删除重复项,但保留列标题

powershell - 遍历CSV并创建一个数组

powershell - 如何通过powershell将计算机加入域

windows - 如何在 PowerShell 中同时运行 2 个方法

powershell - 开始工作中无法识别的功能

Powershell:并行运行多个作业并查看来自后台作业的流式传输结果

variables - Powershell 将变量传递给开始作业

powershell - 多语言SID添加本地群组成员

PowerShell 启 Action 业工作目录