Batch file 用于进行查询以与youtube dl一起使用的批处理文件

Batch file 用于进行查询以与youtube dl一起使用的批处理文件,batch-file,youtube-dl,Batch File,Youtube Dl,我想构建一个批处理程序来处理youtube dl,我想问一些问题(我认为应该是choice命令),并根据生成查询的答案,生成查询将由主youtube dl命令执行 例如: echo Do you want to extract audio from this clip? (y/n) echo Write subtitle file? (y/n) 并在最后这样做: youtube-dl -x --write-sub some link 我希望我是清楚的,英语不是我的第一语言。谢谢试试这个:

我想构建一个批处理程序来处理youtube dl,我想问一些问题(我认为应该是choice命令),并根据生成查询的答案,生成查询将由主youtube dl命令执行

例如:

echo Do you want to extract audio from this clip? (y/n)

echo Write subtitle file? (y/n)
并在最后这样做:

youtube-dl -x --write-sub  some link
我希望我是清楚的,英语不是我的第一语言。谢谢

试试这个:

@echo off
setlocal

:Input
set opt1=
set opt2=
set /p opt1=Do you want to extract audio from this clip (y/n) 
if not defined opt1 goto :Invalid
if .%opt1% EQU . goto :Invalid
echo %opt1%|findstr /i /r /c:"y" /c:"n">nul||goto :Invalid
set /p opt2=Write subtitle file (y/n) 
if not defined opt2 goto :Invalid
if .%opt1% EQU . goto :Invalid
echo %opt2%|findstr /i /r /c:"y" /c:"n">nul||goto :Invalid
if /i %opt1% EQU Y set opts=-x
if /i %opt2% EQU Y set opts=%opts% --write-sub
echo youtube-dl %opts% some link
goto :eof

:Invalid
Echo You have entered an invalid option. Please enter only y or n
goto :Input

我删除了最后一行的echo,现在它可以工作了,谢谢。setlocal是什么意思?我对这一切都不熟悉…如何防止不回答问题、空字符串或除y和n之外的其他东西?