通过批处理文件将文件下载到某个位置

时间:2015-09-22 09:44:23

标签: batch-file

我有一些api链接(基本上是网址)。在点击这些api时,zip文件会被下载。

这可能是我可以在批处理文件中编写它们并自动下载到我系统中的某个特定位置。此外,我希望此过程充当后台进程。

1 个答案:

答案 0 :(得分:0)

实际上批处理能够下载文件,但它确实很乱。我宁愿用powershell来做这件事。这是我制作的脚本,它可以下载文件,甚至可以显示进度:

function downloadFile($url, $targetFile)
{
    "Downloading $url"
    $uri = New-Object "System.Uri" "$url"
    $request = [System.Net.HttpWebRequest]::Create($uri)
    $request.set_Timeout(15000)
    $response = $request.GetResponse()
    $totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)
    $responseStream = $response.GetResponseStream()
    $targetStream = New-Object -TypeName System.IO.FileStream -ArgumentList $targetFile, Create
    $buffer = new-object byte[] 10KB
    $count = $responseStream.Read($buffer,0,$buffer.length)
    $downloadedBytes = $count
    while ($count -gt 0)
    {
        [System.Console]::CursorLeft = 0
        [System.Console]::Write("Downloaded {0}K of {1}K", [System.Math]::Floor($downloadedBytes/1024), $totalLength)
        $targetStream.Write($buffer, 0, $count)
        $count = $responseStream.Read($buffer,0,$buffer.length)
        $downloadedBytes = $downloadedBytes + $count
    }
    "`nFinished Download"
    $targetStream.Flush()
    $targetStream.Close()
    $targetStream.Dispose()
    $responseStream.Dispose()
}

downloadFile "URL" "target_file"

您只需通过添加来源和目的地来修改最后一行。