批量读取输出

Read Output in Batch

我正在使用此代码尝试使用 youtube-dl 下载视频和字幕,然后使用 ffmpeg 将它们组合起来。

我正在尝试将 video/subtitle 输出设置为 title.extension 而不是常规标题 id.extesion,但是要做到这一点 youtube-dl 有一个输出它的命令一个 echo 命令,所以我需要阅读它。

@echo off
echo Write a link and press enter
set /p link=
cls

youtube-dl.exe -u myusername -p mypassword --skip-download --sub-lang enUS --sub-format "ass" --output "%(uploader)s%(title)s.%(ext)s" "%link%"
youtube-dl.exe -u myusername -p mypassword -f worst --ffmpeg-location "%cd%\ffmpeg.exe" --hls-prefer-ffmpeg --console-title --output "%(uploader)s%(title)s.%(ext)s" "%link%"

youtube-dl.exe -u myusername -p mypassword --skip-download --get-title "%link%" > title.txt
for /f "delims=" %%x in (title.txt) do set title=%%x
ffmpeg.exe -i "%cd%\%title%.flv" -vf "ass=%cd%\%title%.ass" "%cd%\%title%.mkv"
pause

感谢 Squashman,我让它工作了,我在 运行 使用它发送到文件的命令后将其写入文本文件:

youtube-dl.exe -u myusername -p mypassword --skip-download --get-title "%link%" > title.txt
for /f "delims=" %%x in (title.txt) do set title=%%x

并将其设置为名为 title 的变量:

for /f "delims=" %%x in (title.txt) do set title=%%x