Проблемы частично возникают из
- непоследовательное использование двойных кавычек и
- необходимость избегать
%
признаков того, что их нельзя интерпретировать как обозначение переменной путем их удвоения%%
. Но каждый раз, когда cmd.exe анализирует набор / вызов строки, он сокращает два%%
к одному%
. - Также знак равенства разделяет аргументы командной строки (например,; tab) и удаляется.
Попробуй это:
SET "DOWNPATHLIST=%%(playlist_index)s - %%(title)s.%%(ext)s" SET "CACHDIR=.cache" SET /P "id=Please, Enter ID or Link:" CALL :YOUTUBEDOWN %id%, "-f bestvideo[ext!=webm]??+bestaudio[ext!=webm]??/best[ext!=webm]", "-o %%DOWNPATHLIST%%" Pause Goto :Eof :YOUTUBEDOWN youtube-dl --cache-dir %CACHDIR% %* PAUSE
%*
Разрешит все аргументы, переданные без изменений. Для проверки вы можете временно добавить youtube-dl
эхо.