如何实现Batch脚本中用户输入ID逐行自增,生成60条streamlink下载命令
你可以直接用Windows批处理的循环逻辑实现,不需要手动编写60行命令,最终可用的脚本如下:
@echo off SETLOCAL ENABLEDELAYEDEXPANSION :: 读取用户输入参数 SET /P _start_id=请输入起始id: SET /P _name=请输入输出文件名前缀: :: 循环执行60次streamlink命令 FOR /L %%i IN (1,1,60) DO ( :: 计算当前请求的id值,逐次自增1 SET /A _current_id = _start_id + %%i - 1 streamlink --hls-segment-threads 10 "http://x.x.x.x:xxxx/video/master.m3u8?channelId=!_current_id!" 720p -l debug -o "!_name!_%%i.mkv" ) ENDLOCAL
关键逻辑说明
- 必须开启
ENABLEDELAYEDEXPANSION延迟变量扩展,循环内动态更新的_current_id需要用!变量名!格式读取才能拿到实时值,不能用原来的%变量名%格式 FOR /L %%i IN (1,1,60)是批处理内置的数值循环语法,三个参数分别对应起始值、步长、终止值,这里就是从1计数到60,每次加1,刚好对应你需要的60条命令- 计算id的逻辑是起始id加上当前循环次数减1,你输入起始id为12000时,第1次循环id为12000,第2次为12001,直到第60次自动取12059,完全符合你的需求
- 输出文件名的序号直接取循环变量
%%i,自动生成前缀_1.mkv到前缀_60.mkv的文件名
内容的提问来源于stack exchange,提问作者Mohamed Serag
相关产品推荐
相关产品推荐

