1

请帮忙,真的很担心如何使用 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

主要脚本

4

1 回答 1

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
于 2012-09-12T15:03:57.603 回答