Board logo

标题: [文件操作] 如何用bat命令统计文件夹内mp4文件时长? [打印本页]

作者: 877    时间: 2023-4-12 09:42     标题: 如何用bat命令统计文件夹内mp4文件时长?

由于win文件夹内是可以统计mp4文件时长的,现在想如何在文件夹外面看到文件夹里面的视频总时长。

求助大佬 或者如何用bat命令统计每个文件夹内的视频时长,然后重命名到文件夹。

唯一想实现的就是在文件夹外面能看到里面mp4文件的总时长。

提前表示感谢了!
作者: 77七    时间: 2023-4-12 12:12

  1. @echo off
  2. rem 需要ffprobe,并添加到环境变量;删除不需要的格式的代码后执行
  3. setlocal enabledelayedexpansion
  4. for /d %%d in (*) do (
  5. pushd "%%d"
  6. set /a secs=0
  7. for /f "delims=" %%i in ('dir /b /s /a-d *.mp4 2^>nul') do (
  8. for /f "tokens=2 delims=^=." %%a in ('ffprobe -show_format "%%i" 2^>^&1 ^| find "duration="') do (
  9. set /a secs+=%%a
  10. )
  11. )
  12. popd
  13. rem 格式1 总分钟数
  14. if not !secs! equ 0 (
  15. set /a m=secs/60
  16. ren "%%d" "%%d-!m!min"
  17. )
  18. rem 格式2 时分秒
  19. if not !secs! equ 0 (
  20. set /a h=secs/3600,m=secs/60%%60,s=secs%%60
  21. ren "%%d" "%%d-!h!h!m!m!s!s"
  22. )
  23. )
  24. endlocal & pause
复制代码

作者: 877    时间: 2023-4-12 12:30

回复 2# 77七


    大佬好,我想在文件夹外面运行,然后统计多个子目录里面的文件时长,最好是再~以时长重命名文件夹的名字。您看下能否实现呢?
作者: 77七    时间: 2023-4-12 12:40

本帖最后由 77七 于 2023-4-12 12:46 编辑

回复 3# 877


  
  1. cd /d "D:\视频1"
复制代码
代码开头加一句,填写你的实际路径,”视频1“ 内的文件夹是需要重命名的;时长已经写了啊,两种格式,删除不要的就行了
  1. ren "%%d" "%%d-!m!min"
复制代码


后面的%%d就是文件夹名字,如果不要原文件夹名字,就删除%%d和连接符号“-”,但是时长一样就重名了
  1. ren "%%d" "!m!min"
复制代码

作者: 877    时间: 2023-4-12 12:49

回复 4# 77七


    运行bat没有反应,提示请按任意键继续,ffprobe也添加到环境变量了。
作者: 77七    时间: 2023-4-12 13:00

回复 5# 877


  因为cd /d 了中文路径吧?把批处理保存为ansi编码格式
作者: 877    时间: 2023-4-12 13:04

回复 6# 77七


   搞定了大佬,您太棒了!万分感谢!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2