Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理宏不工作_Batch File_Cmd_Macros - Fatal编程技术网

Batch file 批处理宏不工作

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为调试打开) 这是怎么回事?为

我正在尝试创建一个批处理程序(这里称为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为调试打开)


这是怎么回事?为什么命令不能像在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"