以下工作正常:
@echo off
youtube-dl --output D:\path\%%(title)s.%%(ext)s -f bestaudio https://www.youtube.com/watch?v=J9bjJEjK2dQ
我可以添加IF
条款(我得到预期的' hi'):
@echo off
IF 1==1 (
echo hi
)
youtube-dl --output D:\path\%%(title)s.%%(ext)s -f bestaudio https://www.youtube.com/watch?v=J9bjJEjK2dQ
但是当我在youtube-dl
条款中加入IF
时,它并不起作用。我得到s.%(ext)s was unexpected at this time.
,没有hi
。
@echo off
IF 1==1 (
echo hi
youtube-dl --output D:\path\%%(title)s.%%(ext)s -f bestaudio https://www.youtube.com/watch?v=J9bjJEjK2dQ
)
如果我将输出路径放在变量中,也是一样:
@echo off
set OUTPUT=D:\path\%%(title)s.%%(ext)s
IF 1==1 (
echo hi
youtube-dl --output %OUTPUT% -f bestaudio https://www.youtube.com/watch?v=J9bjJEjK2dQ
)
变量本身不是问题,因为以下工作正常:
@echo off
set OUTPUT=D:\path\%%(title)s.%%(ext)s
IF 1==1 (
echo hi
)
youtube-dl --output %OUTPUT% -f bestaudio https://www.youtube.com/watch?v=J9bjJEjK2dQ
如何将事物放在IF
子句中?
答案 0 :(得分:1)
感谢Iridium的解决方案。 IF()
内的括号需要转义,因此(
变为^(
而)
变为^)
。
@echo off
IF 1==1 (
echo hi
youtube-dl --output D:\path\%%^(title^)s.%%^(ext^)s -f bestaudio https://www.youtube.com/watch?v=J9bjJEjK2dQ
)