[英]How to Delay Complete-BitsTransfer until Transfer Complete?
The following bits transfer starts a bunch of bits jobs, which work perfectly when I manually complete the transfer later: Get-BitsTransfer | Complete-BitsTransfer
以下位传输将启动一堆位工作,当我稍后手动完成传输时,这些工作会完美地工作: Get-BitsTransfer | Complete-BitsTransfer
Get-BitsTransfer | Complete-BitsTransfer
My attempt to script a delay before complete is not working. 我尝试编写完成之前的延迟脚本不起作用。 The While
is not processed, or perhaps it's processed before the transfer jobs even start. 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
Any suggestion how to permit -Asynchronous
jobs a chance to load before executing complete? 有什么建议如何允许- -Asynchronous
作业在执行完成之前有机会加载吗?
After I added a 1-second delay before the wait, the script above waits. 在等待之前添加了1秒的延迟后,上面的脚本等待。 Seems hacky. 似乎很老套。
cezarypiatek deserves this answer: cezarypiatek应该得到这个答案:
Problem is the While loop checking only the last package. 问题是While循环仅检查最后一个程序包。 Code corrected to: 代码已更正为:
$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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.