You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下youtube-dl的%(title)s.%(ext)s模板与set /p兼容问题求助

解决Windows批处理中youtube-dl输出文件名无法获取视频标题的问题

这个问题太常见了!在Windows CMD的批处理脚本里,百分号%是用来引用环境变量的特殊符号,所以你写的%(title)s.%(ext)s会被CMD先一步解析——它把%(title)s.当成了一个不存在的环境变量,解析后就只剩下(ext)s,最后加上下载的视频扩展名就变成了(ext)s.webm。

正确的解决方案

把输出模板里的每个单个百分号%改成两个百分号%%,这样CMD就会把它当作字面意义的%传递给youtube-dl,让youtube-dl正常识别标题和扩展名的占位符。修改后的批处理命令如下:

set /p ytlink="Enter the link of Youtube Video:- "
youtube-dl -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" -o "D:\Videos\%%(title)s.%%(ext)s" %ytlink%
pause

原理说明

在Windows批处理脚本中,要输出一个普通的%字符,必须用%%进行转义。这是CMD的语法规则:单个%会被解析为变量引用,而两个%则会被还原成一个%传递给后续的程序(这里就是youtube-dl)。这样youtube-dl就能正确识别%(title)s和%(ext)s,分别替换成视频标题和对应的文件扩展名了。

内容的提问来源于stack exchange,提问作者user3515562

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 12:34:11