Windows 批处理:使用用户输入作为命令参数
Windows Batch: using user input as command argument
我最近发现 youtube-dl,我想在 youtube-dl 可执行文件的文件夹中创建一个批处理文件,该文件要求 url 并在 url
youtube-dl --extract-audio --audio-format mp3 -i -o songs\%(title)s.%(ext)s <video URL>
命令,它将视频作为 mp3 文件保存在与可执行文件相同的文件路径中的 \songs\ 文件夹中。如果我将命令复制粘贴到命令提示符中并将 <video url>
替换为实际的 url,则该命令工作正常,但是当我尝试将其放入批处理文件时(例如使用 set var1=""
)它在命令中使用变量的名称 (youtube-dl --extract-audio --audio-format mp3 -i -o songs\%(title)s.%(ext)s var1
)。
我找到了this,这似乎是我要找的东西,但没有任何意义。
将命令复制到批处理文件时,您需要将 %
替换为 %%
,以便正确解释 -o
选项的输出模板参数(即作为字符串 %(title)s.%(ext)s
)。
如果您希望系统提示您输入 link,批处理文件可能如下所示:
set /p var1= "Enter youtube link: "
youtube-dl --extract-audio --audio-format mp3 -i -o songs\%%(title)s.%%(ext)s %var1%
或者,只需在调用脚本 (set var1=youtube-link
) 之前或在脚本本身中设置 var1
。
我最近发现 youtube-dl,我想在 youtube-dl 可执行文件的文件夹中创建一个批处理文件,该文件要求 url 并在 url
youtube-dl --extract-audio --audio-format mp3 -i -o songs\%(title)s.%(ext)s <video URL>
命令,它将视频作为 mp3 文件保存在与可执行文件相同的文件路径中的 \songs\ 文件夹中。如果我将命令复制粘贴到命令提示符中并将 <video url>
替换为实际的 url,则该命令工作正常,但是当我尝试将其放入批处理文件时(例如使用 set var1=""
)它在命令中使用变量的名称 (youtube-dl --extract-audio --audio-format mp3 -i -o songs\%(title)s.%(ext)s var1
)。
我找到了this,这似乎是我要找的东西,但没有任何意义。
将命令复制到批处理文件时,您需要将 %
替换为 %%
,以便正确解释 -o
选项的输出模板参数(即作为字符串 %(title)s.%(ext)s
)。
如果您希望系统提示您输入 link,批处理文件可能如下所示:
set /p var1= "Enter youtube link: "
youtube-dl --extract-audio --audio-format mp3 -i -o songs\%%(title)s.%%(ext)s %var1%
或者,只需在调用脚本 (set var1=youtube-link
) 之前或在脚本本身中设置 var1
。