如何在CMD中用嵌套循环批量下载多季剧集文件?
实现《Grimm》多季批量下载的CMD方案
方法1:分季执行(简单直观)
直接针对每一季的集数范围,修改单季命令中的季数和集数上限,依次执行即可:
第一季(E01-E24)
for /L %i in (1,1,24) do curl -O "http://cdn3.movie.af/drive1/Movie/Series/Grimm-S1/live/Grimm-S01E%02i-720p-BluRay-Movie.af.mp4"
第二季(E01-E25)
for /L %i in (1,1,25) do curl -O "http://cdn3.movie.af/drive1/Movie/Series/Grimm-S2/live/Grimm-S02E%02i-720p-BluRay-Movie.af.mp4"
第三季(E01-E30)
for /L %i in (1,1,30) do curl -O "http://cdn3.movie.af/drive1/Movie/Series/Grimm-S3/live/Grimm-S03E%02i-720p-BluRay-Movie.af.mp4"
注:%02i会自动将数字补为两位(比如1→01),匹配URL里的剧集编号格式。
方法2:嵌套循环自动批量处理(高效一次性完成)
如果想一键下载所有季,可创建批处理文件实现自动化:
- 新建文本文件,命名为
download_grimm.bat,写入以下内容:
@echo off :: 定义季数与对应集数上限,格式:"季数 集数上限",多季用分号分隔 set "seasons=1 24;2 25;3 30" :: 遍历每一季配置 for %%s in (%seasons:;= %) do ( :: 拆分季数和集数上限 for /f "tokens=1,2" %%a in ("%%s") do ( setlocal enabledelayedexpansion :: 格式化季数为两位数字 set "season_code=0%%a" set "season_code=!season_code:~-2!" :: 遍历该季所有集数 for /L %%i in (1,1,%%b) do ( :: 格式化集数为两位数字 set "ep_code=0%%i" set "ep_code=!ep_code:~-2!" :: 执行下载命令 curl -O "http://cdn3.movie.af/drive1/Movie/Series/Grimm-S%%a/live/Grimm-S!season_code!E!ep_code!-720p-BluRay-Movie.af.mp4" ) endlocal ) )
- 保存后双击该批处理文件,或在CMD中运行
download_grimm.bat,即可自动下载所有三季剧集。
扩展说明
- 若后续需要添加更多季,只需修改
seasons变量,比如追加4 22即可处理第四季(假设为22集)。 enabledelayedexpansion用于在循环中正确更新变量值,确保季数和集数的格式化生效。
内容的提问来源于stack exchange,提问作者Wahid Anwari
相关产品推荐
相关产品推荐

