目标是一个批处理文件,它调用 youtube-dl 将文件保存到具有以下命名约定的文件夹中:
章节号[空格]章节名称\播放列表索引[空格]标题.ext
尝试将参数传递给 windows youtube-dl 失败:
-o "%(章节编号)s %(章节)s\%(播放列表索引)s %(标题)s.%(扩展名)s"
Windows 解析命令行的方法不太恰当(参见:https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/)
我尝试用 _ 替换空格字符并在 \ 前添加 ^ 但是也失败了。
关于向批处理文件传递包含特殊字符的参数的讨论有很多。这个问题是关于从批处理文件传递参数的。
我想知道如何正确传递这个参数。我尝试了 2 种可能性,但没有成功;
1)创建一个包含所有字符“%(chapter_number)s %(chapter)s\%(playlist_index)s %(title)s.%(ext)s”的字符串,包括引号,然后以某种方式传递字符串的内容...
2)用能够准确传递预期参数的字符序列替换空格和 \ 字符。
有经验的人可以从 Windows 批处理文件中传递“问题”字符作为命令参数吗?
答案1
好吧...问题发布后又出现了一个答案:
-o "%%(播放列表)s/%%(章节编号)s %%(章节)s/%%(播放列表索引)s %%(标题)s.%%(扩展名)s"