2

Я хочу обработать загрузку YouTube с помощью файла .bat, вот так:

youtube-dl -o path\%(title)s.%(ext)s --audio-format best -x ^
url

и он прекрасно работает в cmd, но когда я помещаю его в .bat и запускаю, я получаю следующее:

Usage: youtube-dl [OPTIONS] URL [URL...]

youtube-dl: error: Cannot download a video and extract audio into the same file! Use "path\(ext)s.%(ext)s" instead of "path\(ext)s" as the output template

Я могу заставить его работать, заменив %(title)s.%(ext)s на %(title)s%(ext)s.%(ext)s . Когда я запускаю .bat, cmd интерпретирует это так:

youtube-dl -o path\(ext)s.(ext)s --audio-format best -x url

и я получаю файл с именем (ext)s.m4a .

Как получить файл с правильным именем и нужным мне путем?

1 ответ1

3

Командная оболочка может интерпретировать знак процента, сопровождаемый некоторыми другими вещами, как имя переменной. Если вы хотите, чтобы программа получала фактический знак процента, вам, возможно, придется избежать его, используя несколько знаков процента. Итак, попробуйте использовать два знака процента подряд.

Если вы используете команду echo , вы можете легко увидеть, что фактически отправлено в программу (чтобы вы могли увидеть, что программа действительно получает), что может быть полезно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .