Вот функция PowerShell, которая разрешает короткие URL-адреса перед загрузкой файла
function Get-FileFromUri {
param(
[parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
[string]
[Alias('Uri')]
$Url,
[parameter(Mandatory=$false, Position=1)]
[string]
[Alias('Folder')]
$FolderPath
)
process {
try {
# resolve short URLs
$req = [System.Net.HttpWebRequest]::Create($Url)
$req.Method = "HEAD"
$response = $req.GetResponse()
$fUri = $response.ResponseUri
$filename = [System.IO.Path]::GetFileName($fUri.LocalPath);
$response.Close()
# download file
$destination = (Get-Item -Path ".\" -Verbose).FullName
if ($FolderPath) { $destination = $FolderPath }
if ($destination.EndsWith('
Использовать его так, чтобы загрузить файл в текущую папку:
Get-FileFromUri http://example.com/url/of/example/file
“`
Или загрузить файл в указанную папку:
Get-FileFromUri http://example.com/url/of/example/file C:\example-folder
```)) {
$destination += $filename
} else {
$destination += '
Использовать его так, чтобы загрузить файл в текущую папку:
&001
Или загрузить файл в указанную папку:
&001 + $filename
}
$webclient = New-Object System.Net.webclient
$webclient.downloadfile($fUri.AbsoluteUri, $destination)
write-host -ForegroundColor DarkGreen "downloaded '$($fUri.AbsoluteUri)' to '$($destination)'"
} catch {
write-host -ForegroundColor DarkRed $_.Exception.Message
}
}
}
Использовать его так, чтобы загрузить файл в текущую папку:
&001
Или загрузить файл в указанную папку:
&001