怎么将 yt-dlp 的运行信息输出到文本文件?

看遍了 yt-dlp 的帮助,似乎没有可以输出日志、记录等的功能开关,
“–verbose”开关也只是让屏输出的信息增加程序调试信息,
使用“>”输出符也并没有得到任何输出。

我的目的是记录批量下载的过程信息,也就是屏幕显示什么就记录什么,看哪些是被删了,哪些是网络出错造成失败了,毕竟翻命令行窗口很不方便。

> a.txt 和 Linux Shell 里是一样的,默认只是把正常的信息写入a.txt
如果错误也要输出

> a.txt 2>&1
1 Like

你输入的完整命令是?

D:\Programs\yt-dlp_win\yt-dlp.exe -a @@list.txt --config-locations “D:\Programs\yt-dlp_win\yt-dlp.conf” > “yt-dlp downlog.txt”

在命令行粘贴这命令是可行的,能输出 “yt-dlp downlog.txt” ,也如 18CM 所说

但同样的命令放在快捷方式中,后面的输出命令就没有执行,跟不存在这命令一样。

另外如果输出到文本文件,屏幕就不显示了,得自己打开输出的文本文件看……

在 Bash 用 tee,屏幕会继续显示输出。不清楚 PowerShell 有没有这样的功能。

yt-dlp 'url' |& tee log

|& 表示重定向输出和错误。

你可以把命令写在 cmd 文件里,然后快捷方式指向 cmd

也只能这样了
(cmd居然不支持utf-8的bat……)
wintee可以,但效果:


屏幕是怎么显示,输出的文本也就怎么显示……
另外怎么把错误信息加进去?按其说明用“|”管道的话,那“ 2>&1”怎么放进来 ?

BSD/Linux有个小工具叫做script,可以记录一段交互过程。一般的用法类似这种:script abc.log -c "dir *.txt; echo done"

要在Windows下用的话,似乎只能从cygwin或者msys2装一个util-linux包,不知道哪里有比较独立的port

具体的不便在于:
正在运行的输出会导致窗口一直回滚到最底下更新的行;
滚动条并不正比于窗口实际内容;
不方便检索(虽然可以在选择状态Ctrl-A再回车复制出屏幕内容)

今天偶然发现一个免费工具可以解决这个问题:

具体就是,可以随心往上滚动回看之前的屏幕输出,不影响控制台里的程序运行,不会自动回滚到底部;
滚动条自动隐藏,滚动的时候显示,正比于窗口内容;
有搜索框,可以直接检索屏幕内容。

据其介绍,还能实现多标签页、多分窗口、多类终端(cmd、ps、bash等)、替换系统默认终端,甚至嵌入资源管理器窗口内运行的功能