如果使用标记/开关执行,如何使蝙蝠做其他事情(标题可能含糊不清)

时间:2017-09-19 04:21:05

标签: batch-file

所以,我一直在研究一个基本上可以帮助你youtube-dl的批处理脚本,基本上可以将所需的所有数据下载到一个目录中。我希望能够创建一个启动它的特殊快捷方式,而不是按照通常的方式执行操作,我希望它通过一个文本文件(例如,让我们称之为更新list.txt)并在该快捷方式时更新播放列表运行。我不想制作另一个这样做的批处理文件(为了用户的简单)。

这是我到目前为止所拥有的:

@echo off
:loop
title Welcome to CCF_100's youtube-dl helper!
set /A loop=loop+1
echo.Times Looped: %loop%
cd %~dp0
set /p input=Enter YouTube ID, URL, or Playlist ID: 
set /p Output_Dir=Enter Directory you want to save in (Directory will be 
created if it does not exist): 
set /p flags=Enter flags (Optional): 
if exist %Output_Dir%\ (goto Do_the_thing) else (goto make_directory)


:make_directory
mkdir "%Output_Dir%"
if /I %loop% LEQ 2 goto Do_the_thing
explorer "%Output_Dir%"

:Do_the_thing
title CCF_100's ytdl helper: currently downloading: %input% to %Output_Dir%
youtube-dl.exe -i -U %flags% -o "%Output_Dir%\%%(title)s - %%(id)s.%%(ext)s" 
%input% 
set /p loop=Successfully downloaded file(s). Download more?
if /i %loop%==y goto loop
if /i %loop%==Y goto loop
if /i %loop%==n goto end
if /i %loop%==N goto end

:end
exit

是的,我知道最后两个if语句是不必要的。

1 个答案:

答案 0 :(得分:0)

您可以通过读取%n的值来获取批处理文件的参数,其中n是0到9之间的数字或星号。 0是批处理文件本身(在其路径的意义上),星号表示任何其他参数(不包括批处理文件路径)。

因此,您可以检查%1的内容,看看它是您想到的标志还是存在的标志:

REM Demo only!
@echo off
if "%1"=="" (
  echo no flags set
) ELSE (
  echo flag set: %1
)

或以类似方式更改if以仅对您的旗帜做出反应。