![将视频文件名称列表连同其运行时间一起复制到文本文件?](https://linux22.com/image/1328145/%E5%B0%86%E8%A7%86%E9%A2%91%E6%96%87%E4%BB%B6%E5%90%8D%E7%A7%B0%E5%88%97%E8%A1%A8%E8%BF%9E%E5%90%8C%E5%85%B6%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4%E4%B8%80%E8%B5%B7%E5%A4%8D%E5%88%B6%E5%88%B0%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我链接上述页面是因为它与我的问题相关。
是否有类似的东西可以输出一个“纯”文本文件(或 XML 或 CSV 文件),其数据与以下 CMD 提示符生成的数据基本相同:
dir > c:\list.txt
但是,我唯一需要的差异是输出文件中包含的所有视频文件的运行时间。这可以轻松完成吗?
这可以在 Python 终端或 Microsoft 的 DOS 提示符中完成吗?
答案1
旧答案
copy /B file1+file2 file3
修改后的答案
使用 mediainfo 下载。这是命令行版本。
C:\>mediainfo file.wmv | find "Duration"
Duration : 14mn 3s
Duration : 14mn 3s
Duration : 14mn 3s
您还可以执行 | 查找“名称”并获取名称。
你可以只抓取第一行,所以 | head -n 1 (head 需要 gnuwin32),然后你就可以抓取 14mn 3s
C:\>for /f "tokens=1-2,*" %f in ('mediainfo "a.wmv" ^| find "Duration"')
do @echo %h
14mn 3s
14mn 3s
14mn 3s
您可以重定向到某个文件。
如果你把这个 bat 文件放到与视频相同的目录中
这里我使用了 gnuwin32 的 head 命令。但是如果你删除 | head -n 1,你仍然会明白。
一只蝙蝠
for %%f in (*.*) do (
echo %%f >>y
mediainfo %%f | find "Duration" | head -n 1 >>y
echo. >>y
)
C:\>type y
a.bat
file1.wmv
Duration : 30s 0ms
file2.wmv
Duration : 45s 11ms