3

很抱歉一直询问 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

谁能帮我理解我做错了什么?

4

4 回答 4

1

我在 BitsAdmin 上使用了太多时间来尝试传输一个从未完成的文件,因为服务器没有给出文件长度。

Start-BitsTransfer : Die Dateigröße wurde vom Server nicht zurückgegeben. 
Möglicherweise enthält die URL dynamischen Inhalt. Der
Inhaltslängenheader ist in der Server-HTTP-Antwort nicht verfügbar.
In Zeile:1 Zeichen:1
+ Start-BitsTransfer http://***/file c:\users\***\file.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [Start-BitsTransfer],Exception
+ FullyQualifiedErrorId :
StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.
  Management.NewBitsTransferCommand

在使用 Start-BitsTransfer 从 powershell 尝试相同的操作后,它是相同的行为。

这个解决方案真的很棒,也解决了我的问题!谢谢!

$request = New-Object System.Net.Webclient
$passwd = ConvertTo-SecureString "**" -AsPlainText -Force
$request.Credentials = New-Object System.Management.Automation.PSCredential ("**", $passwd)
$request.Downloadstring("https://my full target url") 
于 2018-05-13T21:53:41.570 回答
1

您以正确的方式做到了:

Import-Module BitsTransfer

Start-BitsTransfer -Source $url -Destination $output -Asynchronous    
Get-BitsTransfer | Complete-BitsTransfer

可能的故障

  1. 目标参数错误$dmfpath\TestWA$date.txt
  2. 有 60 多个 BitTransfer 正在运行,以Get-BitsTransfer | Remove-BitsTransfer
于 2016-06-23T16:09:28.340 回答
0

查看此网页上有关使用 Start-BitsTransfer的最后一个示例,看看是否有帮助。

于 2013-04-01T23:06:05.557 回答
0

原来这是一个“皇家皮塔”。

谢谢 Kieth 的提示。

我无法让 BitTransfer 正常工作并诉诸这样的事情..

$request = New-Object System.Net.Webclient
$passwd = ConvertTo-SecureString "**" -AsPlainText -Force
$request.Credentials = New-Object System.Management.Automation.PSCredential ("**", $passwd)
$request.Downloadstring("https://my full target url") 
于 2013-04-02T21:23:27.093 回答