重定向时,Start-BitsTransfer忽略文件名

时间:2015-07-13 10:15:11

标签: powershell microsoft-bits

我正在使用Start-BitsTransfer命令在PowerShell脚本中下载远程资源。

但是,当网址是一个简短的网址时,该命令似乎没有采用正确的文件名。

例如,这些网址:http://ligman.me/1IW1oab实际重定向到http://download.microsoft.com/DOWNLOAD/D/6/7/D670D322-5771-409E-BF34-5B98496DEB0A/MICROSOFT_PRESS_EBOOK_INTRODUCING_AZURE_PDF.PDF(HTTP 301 响应)。

但是当我执行

Start-BitsTransfer http://ligman.me/1IW1oab

结果文件名为1IW1oab

有没有办法使用此命令并获取正确的文件名?

2 个答案:

答案 0 :(得分:1)

只需使用命令no,但您可以通过这种方式在镜头网址之前解决:

$url = 'http://ligman.me/1IW1oab'    
$WebClientObject = New-Object System.Net.WebClient
$WebRequest = [System.Net.WebRequest]::create($URL)
$WebResponse = $WebRequest.GetResponse()
$ActualDownloadURL = $WebResponse.ResponseUri.AbsoluteUri
$ObjectProperties = @{ 'Shortened URL' = $URL;
                       'Actual URL' = $ActualDownloadURL}
$ResultsObject = New-Object -TypeName PSObject -Property $ObjectProperties
$WebResponse.Close()
$ResultsObject.'Actual URL'

答案 1 :(得分:0)

Start-BitsTransfer命令包含-destination开关

Start-BitsTransfer http://ligman.me/1IW1oab -destination AZURE.PDF

通常,对于每个使用最终URL都是正确选择的“ URL缩短”方案,都有一个“为了安全而重定向”方案将完美的URL转换为GUID。