start-job以并行方式运行脚本

时间:2012-09-12 13:18:40

标签: powershell powershell-v2.0

请帮忙,真的非常担心 如何使用start-job转换下面的脚本,我有6个模块可供比较,但是顺序我花了太多时间我正在尝试采用start-job选项,以便我可以并行或在后台运行这个比较

试过这个 -

Start-Job -Name "Comparecontrol" -filepath $ExecuteSbtWithDcmDm -ArgumentList $CompareControl,"",$false,$false | Out-Null
echolog $THISSCRIPT $DCM_UPDATE_LOG_FILE $LLINFO "Finished Control Master Comparison

主脚本

1 个答案:

答案 0 :(得分:3)

总体流程将是这样的:

$jobs = @()
$jobs += Start-Job -scriptblock {...}
...
$jobs += Start-Job -scriptblock {...}
Wait-Job $jobs
$results = Receive-Job $jobs

您可以使用作业名称替代存储Start-Job返回的作业实例,例如:

$jobName = 'CompareControl'
foreach ($script in $scripts)
{
    Start-Job -Name $jobName-scriptblock {&$script} -ArgumentList ...
}
Wait-Job -Name $jobName
$results = Receive-Job -Name $jobName