将 URL 文件夹中的所有文件下载到本地文件夹

将 URL 文件夹中的所有文件下载到本地文件夹

我想使用 Windows 10 下载某个 URL 上的所有内容,例如

https://example.com/folder

这个文件夹可能包含 100 个文件,我想把它们都放进

C:\backups

我将安排该脚本每小时运行一次,并且我不希望它下载已经存在的文件。

我尝试过一些脚本,例如:

bitsadmin.exe /transfer "test" https://website.com/folder/ C:\backups

没有任何成功,注意:我对批处理脚本的经验很少

答案1

您将在文章中找到几个有用的 PowerShell 脚本 如何从 URL 下载所有文件?

以下是其中之一:

$outputdir = 'D:\Downloads'
$url       = 'https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/daily/kl/recent/'

# enable TLS 1.2 and TLS 1.1 protocols
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12, [Net.SecurityProtocolType]::Tls11

$WebResponse = Invoke-WebRequest -Uri $url
# get the list of links, skip the first one ("../") and download the files
$WebResponse.Links | Select-Object -ExpandProperty href -Skip 1 | ForEach-Object {
    Write-Host "Downloading file '$_'"
    $filePath = Join-Path -Path $outputdir -ChildPath $_
    $fileUrl  = '{0}/{1}' -f $url.TrimEnd('/'), $_
    Invoke-WebRequest -Uri $fileUrl -OutFile $filePath
}

答案2

有很多方法可以解决这个问题,正如这里的其他答案所提供的,如果严格使用内置的 Windows 10 功能执行此操作,您可以使用 Powershell 来执行此操作。

或者,我使用功能强大、免费且(合理)直观的程序来做你所说的事情,https://www.httrack.com/

它专为本地抓取和复制网站而设计,但您可以配置过滤器或自定义 URL 列表,以便它仅抓取某些 URL 路径或某些文件类型。就我而言,我让它跟踪网站并下载每天更新 4 次的所有天气图 .jpg 文件。

配置并成功运行后,您可以使用 httrack 的命令行功能继续在 .bat 文件中更新/镜像站点/url/文件,然后将其作为 Windows 10 中的计划任务运行。您设置为通过 Windows 任务计划程序激活的 .bat 文件看起来像这样。

set path="C:\Program Files (x86)\WinHTTrack";%path%
cd D:\Backups\WebsiteProjectFolder\
httrack --update

相关内容