Die Probleme ergeben sich teilweise aus
- nicht konsequente Verwendung von Anführungszeichen und
- die Notwendigkeit, den
%
Zeichen zu entgehen, um nicht als eine Variable bezeichnet zu werden, indem man sie verdoppelt%%
. Aber jedes Mal, wenn cmd.exe einen Leitungssatz analysiert, reduziert es zwei%%
zu eins%
. - Auch das Gleichheitszeichen teilt Befehlszeilenargumente (wie,; tab) und wird entfernt.
Versuche dies:
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
Das %*
löst alle unverändert übergebenen Argumente auf. Zum Testen können Sie vorübergehend youtube-dl
ein Echo einfügen .