2016-12-17 89 views
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秒的延迟,上面的脚本等待。似乎哈克。

+1

您可能正在等待while循环中仅用于由上一个循环创建的位移转换的“最后一个包”。你可以发布创建BitTransfers的循环代码吗? – cezarypiatek

回答

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 
相关问题