我正在使用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
有没有办法使用此命令并获取正确的文件名?
答案 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。