如何用curl/PowerShell/CMD批量下载文件及完整文件夹?
批量下载与文件夹下载解决方案
一、批量下载数字序列文件(CMD/PowerShell)
在CMD中实现:
使用for循环遍历数字范围,逐个调用curl下载:
for /L %i in (1,1,150) do curl -O "http://cdn3.amoozesh.af/drive1/Amoozesh/CCNA-2016-Complete/Part-%i.mp4"
注意:如果把命令写到批处理(.bat)文件中,需要把
%i改成%%i。
在PowerShell中实现:
利用序列生成和管道遍历,调用下载命令:
1..150 | ForEach-Object { curl -O "http://cdn3.amoozesh.af/drive1/Amoozesh/CCNA-2016-Complete/Part-$_.mp4" }
或更明确的写法:
1..150 | ForEach-Object { Invoke-WebRequest -Uri "http://cdn3.amoozesh.af/drive1/Amoozesh/CCNA-2016-Complete/Part-$_.mp4" -OutFile "Part-$_.mp4" }
二、直接下载整个文件夹
HTTP协议本身没有原生的“下载文件夹”功能,能否直接下载取决于服务器配置:
- 从你提供的文件夹展示图来看,服务器仅开启了目录索引,未提供打包下载(如ZIP)选项,无法直接通过该URL一键下载整个文件夹。
- 可通过支持递归下载的工具实现,比如:
使用wget(需提前安装):
参数说明:wget -r -np -nH --cut-dirs=3 "http://cdn3.amoozesh.af/drive1/Amoozesh/CCNA-2016-Complete/"-r:递归下载所有子目录和文件-np:不追溯到父目录,避免下载无关内容-nH:不创建以主机名为名的目录--cut-dirs=3:去掉URL前3层目录,文件直接保存到当前目录
三、其他可行的下载方法
- 专业下载工具:如Internet Download Manager(IDM)、迅雷,支持批量导入URL、站点整站抓取,具备断点续传、多线程加速功能,操作更直观。
- aria2:轻量多线程命令行下载工具,适合批量下载。可将所有目标URL写入文本文件(如
urls.txt),执行命令:aria2c -i urls.txt - 浏览器插件:如DownThemAll!,可一键抓取当前页面所有链接,筛选指定文件类型(如.mp4)后批量下载。
内容的提问来源于stack exchange,提问作者Wahid Anwari
相关产品推荐
相关产品推荐

