我在powershell中運行的后臺作業很少,我正在嘗試找到一種方法來獲取作業“正在運行”和“已完成”的計數,一旦作業完成,它們會自動更新。
function jobDetails {
$d = Get-Job | Measure-Object -Property Name
Write-Output "Total Number of Jobs = " $d.Count
$d = (Get-Job -State Running)
Write-Output "Number of Jobs Running = " $d.count
$d = (Get-Job -State Completed)
Write-Output "Number of Jobs Completed = " $d.count
}
請幫助我,因為我是編碼新手
uj5u.com熱心網友回復:
在這里,您可以進行一些簡單的實驗,有很多方法可以做到。
# How many Jobs?
$testJobs = 5
$jobs = 1..$testJobs | ForEach-Object {
Start-Job {
'Hello from Job {0}' -f $using:_
# Set a Random timer between 5 and 10 seconds
Start-Sleep ([random]::new().Next(5,10))
}
}
while($jobs.State -contains 'Running')
{
Clear-Host
"Total Jobs {0}" -f $jobs.Count
"Jobs Running {0}" -f ($jobs.State -eq 'Running').Count
"Jobs Completed {0}" -f ($jobs.State -eq 'Completed').Count
Start-Sleep -Seconds 1
}
Clear-Host
$jobs | Receive-Job -Wait -AutoRemoveJob
你也可以使用Write-Progress:
while($jobs.State -contains 'Running')
{
$total = $jobs.Count
$running = ($jobs.State -eq 'Running').Count
$completed = ($jobs.State -eq 'Completed').Count
$progress = @{
Activity = 'Waiting for Jobs'
Status = 'Remaining Jobs {0} of {1}' -f $running, $total
PercentComplete = $completed / $total * 100
}
Write-Progress @progress
Start-Sleep 1
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412549.html
標籤:
上一篇:帶有作業運行時的獲取作業格式表
下一篇:從特定AD組匯出AD成員
