首页 > 解决方案 > 如何抑制作业状态输出

问题描述

我试图抑制这个输出

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Job1            BackgroundJob   Running       True            localhost            ...
3      Job3            BackgroundJob   Running       True            localhost            ...
5      Job5            BackgroundJob   Running       True            localhost            ...

我的代码编写如下

foreach($line in $db) {
    $job = { 
            #code
            }
    $running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
    if ($running.Count -le $jobLimit) {
        Start-Job -ScriptBlock $job 
    } else {
         $running | Wait-Job -Any | Out-Null
    }
    Get-Job | Receive-Job | Out-Null
}

我无法弄清楚隐藏此状态输出所缺少的内容...

标签: powershell

解决方案


还要添加| Out-Null到这一行:Start-Job -ScriptBlock $job.

foreach($line in $db) {
    $job = { 
            #code
            }
    $running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
    if ($running.Count -le $jobLimit) {
        Start-Job -ScriptBlock $job | Out-Null
    } else {
         $running | Wait-Job -Any | Out-Null
    }
    Get-Job | Receive-Job | Out-Null
}

推荐阅读