Aquí hay una función de PowerShell que resuelve URLs cortas antes de descargar el archivo
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('
Utilícela así para descargar el archivo a la carpeta actual:
Get-FileFromUri http://example.com/url/of/example/file
“`
O para descargar el archivo a una carpeta específica:
Get-FileFromUri http://example.com/url/of/example/file C:\example-folder
```)) {
$destination += $filename
} else {
$destination += '
Utilícela así para descargar el archivo a la carpeta actual:
&001
O para descargar el archivo a una carpeta específica:
&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
}
}
}
Utilícela así para descargar el archivo a la carpeta actual:
&001
O para descargar el archivo a una carpeta específica:
&001