0

以下位传输启动了一堆位作业,当我稍后手动完成传输时,它们可以完美运行:Get-BitsTransfer | Complete-BitsTransfer

我尝试在完成之前编写延迟脚本不起作用。While未处理,或者可能在传输作业开始之前就已处理。

loop starts many jobs...
    $job = Start-BitsTransfer -Source $fileUrl -Destination $fileDest -Asynchronous
...end loop

While ($job.JobState -eq "Transferring") {
    Sleep -Seconds 1
}

Get-BitsTransfer | Complete-BitsTransfer

任何建议如何-Asynchronous在执行完成之前允许作业有机会加载?

在等待前添加 1 秒延迟后,上面的脚本会等待。看起来很hacky。

4

1 回答 1

0

cezarypiatek 应该得到这个答案:

问题是 While 循环仅检查最后一个包。代码更正为:

$job - @()
loop starts many jobs...
    $job += Start-BitsTransfer -Source $fileUrl -Destination $fileDest -Asynchronous
...end loop

While ($job | Where-Object{$job.JobState -eq "Transferring"}) {
    Sleep -Seconds 1
}

Get-BitsTransfer | Complete-BitsTransfer
于 2016-12-17T13:19:15.717 回答