很抱歉一直询问有关 Powershell 的问题,我的 script-foo 不是它需要的。
我正在编写一个 BitsTransfer .PS1 来自动每周下载一个 ASCII 文件。
它似乎永远不会完成并达到“已转移”状态,并且似乎停滞在“正在转移”状态。我可以在我的 -Destination 文件夹中看到一个 TMP 文件,其中包含我的 ASCII 数据。
当我手动下载目标文件并将其与 TMP 文件进行比较时,它们的大小相同,并且似乎具有相同的第一条和最后一条记录。我假设下载已完成。
如果我手动运行 Get-BitsTransfer | Complete-BitsTransfer,TMP文件消失,但仍然没有-Destination文件。
我的脚本并不复杂......
$date= Get-Date -format yyMMdd
$ntispasswd = ConvertTo-SecureString "*******" -AsPlainText -Force
$ntiscreds = New-Object System.Management.Automation.PSCredential ("*******", $ntispasswd)
$jobdescriptor = "DMFWA" + $date
$dmfpath = "C:\DMF"
# -Source https://dmf.ntis.gov/dmldata/weekly/WA$date `
Import-Module BitsTransfer
Start-BitsTransfer `
-DisplayName $jobdescriptor `
-Priority High `
-ProxyUsage Override `
-ProxyList mckwebfilt1:3128 `
-RetryInterval 60 `
-TransferType Download `
-Source https://dmf.ntis.gov/dmldata/weekly/WA130322 `
-Destination $dmfpath\TestWA$date.txt `
-Authentication Basic `
-Credential $ntiscreds `
-Asynchronous
$job = Get-BitsTransfer $displayname
While($Job.Jobstate -ne 'Transferred'){
$job
Start-Sleep -s 1
}
Complete-BitsTransfer $job
任何人都可以帮助我理解我做错了什么吗?
最佳答案
你做对了:
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
Get-BitsTransfer | Complete-BitsTransfer
可能的失败
- 目标参数错误
$dmfpath\TestWA$date.txt
- 有 60 多个 BitTransfers 正在运行,以
Get-BitsTransfer | 结束它们删除位传输
关于Powershell BitsTransfer 未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751498/