Batch file 批处理宏不工作
我正在尝试创建一个批处理程序(这里称为pldl),以使下载带有Batch file 批处理宏不工作,batch-file,cmd,macros,Batch File,Cmd,Macros,我正在尝试创建一个批处理程序(这里称为pldl),以使下载带有youtube dl的歌曲播放列表更容易,该程序非常简单 youtube-dl -o "%(playlist_index)s. %(title)s.%(ext)s" -x --audio-format "mp3" %1 它应该只接受第一个参数(%1)并将其添加到这个长命令中,因此运行command\u name“playlist\u url”将在我运行它的位置下载它。不幸的是,它抛出了一个错误(echo为调试打开) 这是怎么回事?为
youtube dl
的歌曲播放列表更容易,该程序非常简单
youtube-dl -o "%(playlist_index)s. %(title)s.%(ext)s" -x --audio-format "mp3" %1
它应该只接受第一个参数(%1)并将其添加到这个长命令中,因此运行command\u name“playlist\u url”
将在我运行它的位置下载它。不幸的是,它抛出了一个错误(echo为调试打开)
这是怎么回事?为什么命令不能像在echo中看到的那样正常运行?还有没有更好的方法(将一个带参数的长命令与一个短名称绑定)对不起,低质量的post需要这么快。脚本解析器尝试展开变量:
%(playlist_index)s. %
%(ext)s" -x --audio-format "mp3" %
它们可能是未定义的。由于没有可扩展的内容,因此在将部分命令行参数传递到youtube dl
程序之前,会将其剥离。改用双百分号:
youtube-dl -o "%%(playlist_index)s. %%(title)s.%%(ext)s" -x --audio-format "mp3" "%~1"
百分号(%)是一种特殊情况。在命令行上,它是这样做的
不需要引用或转义,除非其中两个用于表示
变量,例如%OS%。但在批处理文件中,必须使用双精度
百分号(%),以生成单个百分号(%)。包围
在引号中或在引号前面加上插入符号的百分比不可用
工作
哦,谢谢。起初,我以为摆脱前面的句子是用反斜杠(
\%
)完成的,但当这不起作用时,我感到困惑。需要一些快速的东西并不是一篇低质量文章的借口!我知道,我真的很抱歉。我只是一个新的批处理,并试图得到一些东西和运行。而且英语不是我的第一语言,所以我的大部分努力都是为了确保语法正确,而不是文章质量,对不起@YowE3K
youtube-dl -o "%%(playlist_index)s. %%(title)s.%%(ext)s" -x --audio-format "mp3" "%~1"