将 youtube-dl 命令输出提取到变量
extracting youtube-dl command output to variable
所以在过去的几天里,我一直在尝试提取 youtube dl 命令的值,不幸的是没有成功,我可能做错了什么这是我的代码:
youtube-dl --get-filename -o "Download/%%(title)s.mp3" https://www.youtube.com/watch?v=dQw4w9WgXcQ
此代码 returns Download\Rick Astley - Never Gonna Give You Up (Video).mp3
我需要将此输出放入一个变量中,我已经尝试过 for /f
但没有成功,它给出了这个错误:
WARNING: Falling back on generic information extractor. ERROR: Unsupported URL: https://www.youtube.com/
编辑:这是我尝试过的
for /f "delims=" %%a in ('youtube-dl --get-filename -o "Download/%%(title)s.mp3" https://www.youtube.com/watch?v=dQw4w9WgXcQ') do set "myvar=%%a"
echo %myvar%
你很幸运,我目前正在维修的电脑上有一个 youtube 可执行文件的副本!
因此我测试了评论中的内容,这是结果!
你的例子,没有引号 URL 并且没有转义字符:
@For /F Delims^=^ EOL^= %%G In ('youtube-dl --get-filename -o "Download/%%(title)s.mp3" https://www.youtube.com/watch?v=dQw4w9WgXcQ') Do @Echo "%%~G"
Returns:
WARNING: Falling back on generic information extractor.
ERROR: Unsupported URL: https://www.youtube.com/
我说,"Please try either doublequoting your URL":
@For /F Delims^=^ EOL^= %%G In ('youtube-dl --get-filename -o "Download/%%(title)s.mp3" "https://www.youtube.com/watch?v=dQw4w9WgXcQ"') Do @Echo "%%~G"
这个returns:
"Download\Rick Astley - Never Gonna Give You Up (Video).mp3"
并且,"or escaping the =
character with a caret, ^
"
@For /F Delims^=^ EOL^= %%G In ('youtube-dl --get-filename -o "Download\%%(title)s.mp3" https://www.youtube.com/watch?v^=dQw4w9WgXcQ') Do @Echo "%%~G"
Returns:
"Download\Rick Astley - Never Gonna Give You Up (Video).mp3"
对于你提出的问题,我的建议似乎是完全正确的。
顺便说一句,在最后一个例子中,因为 Windows 上的路径分隔符是 \ 而不是 /,我更改了 Download/
到 Download\
所以在过去的几天里,我一直在尝试提取 youtube dl 命令的值,不幸的是没有成功,我可能做错了什么这是我的代码:
youtube-dl --get-filename -o "Download/%%(title)s.mp3" https://www.youtube.com/watch?v=dQw4w9WgXcQ
此代码 returns Download\Rick Astley - Never Gonna Give You Up (Video).mp3
我需要将此输出放入一个变量中,我已经尝试过 for /f
但没有成功,它给出了这个错误:
WARNING: Falling back on generic information extractor. ERROR: Unsupported URL: https://www.youtube.com/
编辑:这是我尝试过的
for /f "delims=" %%a in ('youtube-dl --get-filename -o "Download/%%(title)s.mp3" https://www.youtube.com/watch?v=dQw4w9WgXcQ') do set "myvar=%%a"
echo %myvar%
你很幸运,我目前正在维修的电脑上有一个 youtube 可执行文件的副本!
因此我测试了评论中的内容,这是结果!
你的例子,没有引号 URL 并且没有转义字符:
@For /F Delims^=^ EOL^= %%G In ('youtube-dl --get-filename -o "Download/%%(title)s.mp3" https://www.youtube.com/watch?v=dQw4w9WgXcQ') Do @Echo "%%~G"
Returns:
WARNING: Falling back on generic information extractor. ERROR: Unsupported URL: https://www.youtube.com/
我说,"Please try either doublequoting your URL":
@For /F Delims^=^ EOL^= %%G In ('youtube-dl --get-filename -o "Download/%%(title)s.mp3" "https://www.youtube.com/watch?v=dQw4w9WgXcQ"') Do @Echo "%%~G"
这个returns:
"Download\Rick Astley - Never Gonna Give You Up (Video).mp3"
并且,"or escaping the =
character with a caret, ^
"
@For /F Delims^=^ EOL^= %%G In ('youtube-dl --get-filename -o "Download\%%(title)s.mp3" https://www.youtube.com/watch?v^=dQw4w9WgXcQ') Do @Echo "%%~G"
Returns:
"Download\Rick Astley - Never Gonna Give You Up (Video).mp3"
对于你提出的问题,我的建议似乎是完全正确的。
顺便说一句,在最后一个例子中,因为 Windows 上的路径分隔符是 \ 而不是 /,我更改了 Download/
到 Download\