批处理脚本无法正确传递yt-dlp参数问题求助
解决批处理传递yt-dlp URL参数被截断的问题
问题原因
Windows批处理将=视为命令行分隔符,当直接输入不带引号的URL时,%1只能获取到=之前的部分(比如示例里的https://www.youtube.com/watch?v),剩余内容会被当作独立参数,导致yt-dlp收不到完整URL,触发"必须提供至少一个URL"的错误。
解决方案
修改批处理脚本,用双引号包裹参数,确保完整传递URL:
@echo off echo Argument 1: "%~1" yt-dlp -x --audio-format mp3 --audio-quality 0 -o "%(title)s.mp3" "%~1"
关键说明
%~1:自动去除参数外层的引号(如果执行脚本时手动加了引号),避免出现重复嵌套引号的问题- 用
"%~1"包裹参数:强制批处理把整个URL当作单个参数传递,不会被=等特殊字符截断
验证效果
修改后执行脚本,不管是直接输入URL还是带引号输入,echo都会显示完整的URL,yt-dlp也能正常解析并下载音频。
内容的提问来源于stack exchange,提问作者Michael L
相关产品推荐
相关产品推荐

