[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 如何用bat命令统计文件夹内mp4文件时长?

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

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

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

提前表示感谢了!

回复 6# 77七


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

TOP

回复 5# 877


  因为cd /d 了中文路径吧?把批处理保存为ansi编码格式
bat小白,请多指教!谢谢!

TOP

回复 4# 77七


    运行bat没有反应,提示请按任意键继续,ffprobe也添加到环境变量了。

TOP

本帖最后由 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"
复制代码
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


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

TOP

  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
复制代码
1

评分人数

    • 877: 大佬666,万分感谢!技术 + 1
bat小白,请多指教!谢谢!

TOP

返回列表