找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 93968|回复: 37

[文件操作] 批处理怎样在文件夹后追加文件夹内视频总时长?

[复制链接]
发表于 2024-1-27 21:05:31 | 显示全部楼层 |阅读模式
实现 在文件夹文件名后插入文件夹内视频文件总时长,
以分钟形式表示,如果秒数不为0,则在分钟上+1.
如,文件夹内视频总时和1小时5分1秒,计算后标记66,再分钟前后分别加“【” “】”


如使用第三方软件,需要在BAT里设置文件路径,如使用ffmpeg,要在bat标记路径,如D:\tool\ffmpeg.exe
链接:https://pan.baidu.com/s/1l0uoyc616V4REeioKOzc6w?pwd=qcef
提取码:qcef
--来自百度网盘超级会员V10的分享

谢谢
发表于 2024-1-27 22:30:22 | 显示全部楼层
没有处理秒
将文件夹拖到bat上,显示正确,去掉 ren 前的 echo
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION

  3. set folder=%1

  4. pushd %folder%
  5. set/a time=0
  6. for /f "usebackq" %%a in (` dir /b *.mkv `) do (
  7.         for /f "usebackq tokens=2,3 delims=: " %%i in (` "ffprobe.exe %%a 2>&1 | findstr Duration" `) do (
  8.                 set /a time+=%%i*60+%%j
  9.         )
  10. )
  11. popd

  12. echo ren %folder% %folder%[%time%]

  13. pause
  14. exit/b
复制代码
 楼主| 发表于 2024-1-27 23:35:00 | 显示全部楼层
本帖最后由 qd2024 于 2024-1-27 23:44 编辑

回复 2# newswan


    感谢 视频扩展名改为mp4  测试没有成功 帮忙看看

发表于 2024-1-28 10:15:24 | 显示全部楼层
回复 3# qd2024


将文件夹拖到bat上
或者 手动设置 folder 变量
 楼主| 发表于 2024-1-28 10:54:26 | 显示全部楼层
回复 4# newswan


    对的 就是拖文件夹到 BAT上 出现这样提示
发表于 2024-1-28 13:36:46 | 显示全部楼层


这个不能用吗
发表于 2024-1-28 15:39:45 | 显示全部楼层
批处理保存为ansi编码呢
 楼主| 发表于 2024-1-28 16:15:55 | 显示全部楼层
回复 7# czjt1234


    试了 提示一样的
 楼主| 发表于 2024-1-28 16:16:07 | 显示全部楼层
回复 6# 77七


    我试试
发表于 2024-1-28 18:02:27 | 显示全部楼层
路径有空格?
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION

  3. set folder=%~1

  4. set ffPath=D:\Program Files

  5. pushd "%folder%"

  6. set/a time=0
  7. for /f "usebackq" %%a in (` dir /b *.mkv `) do (
  8.         for /f "usebackq tokens=2,3 delims=: " %%i in (` ""%ffpath%\ffprobe.exe" %%a 2>&1 | findstr Duration" `) do (
  9.                 set /a time+=%%i*60+%%j+1
  10.         )
  11. )
  12. echo %time%

  13. popd

  14. echo ren "%folder%" "%folder%[%time%]"

  15. pause
  16. exit/b
复制代码
发表于 2024-1-28 18:32:01 | 显示全部楼层
ai 给了一个直接获取时长的方法
  1. ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
  2. 30.024000
复制代码
发表于 2024-1-28 19:16:45 | 显示全部楼层
本帖最后由 ppll2030 于 2024-1-28 22:17 编辑

二楼的时间好像有问题,我段位低,理解不了。
所以用Batcher大大的分段截取代码,再组合一下。
楼主可以试试。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set folder=%~1
  4. set ffpath=H:\共享影视\Download\FFmpeg\ffmpeg.exe
  5. pushd "%folder%"
  6. for /f "delims=" %%i in ('dir /b /s /a-d *.avi *.mkv *.mp4 *.rmvb *.wmv') do (
  7.     for /f "tokens=2 delims=, " %%a in ('%ffpath% -i "%%i" 2^>^&1 ^| find "Duration:"') do set "str=%%a"
  8.     set str=!str:~0,-3!
  9.     for /f "tokens=1-3 delims=:" %%x in ("!str!") do (
  10.         set "hh=%%x"
  11.         set "mm=%%y"
  12.         set "ss=%%z"
  13.         set /a minutes=1!hh!*60-6000
  14.         set /a minutes+=1!mm!-100
  15.         if !ss! neq 0 (set /a minutes+=1)
  16.     )
  17.    set /a  Totalduration+=!minutes!  
  18. )
  19. popd
  20. echo ren "%~1" "%~n1【!Totalduration!】"
  21. pause
复制代码
发表于 2024-1-28 19:50:57 | 显示全部楼层
文件名可能有空格
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION

  3. set folder=%~1

  4. set ffPath=D:\Program Files

  5. pushd "%folder%"

  6. set/a time=0
  7. for /f "usebackq tokens=* delims=" %%a in (` dir /b *.mkv `) do (
  8.         for /f "usebackq tokens=2,3 delims=: " %%i in (` ""%ffpath%\ffprobe.exe" "%%a" 2>&1 | findstr Duration" `) do (
  9.                 set /a time+=%%i*60+%%j+1
  10.         )
  11. )
  12. echo %time%

  13. popd

  14. echo ren "%folder%" "%folder%[%time%]"

  15. pause
  16. exit/b
复制代码
 楼主| 发表于 2024-1-28 20:24:21 | 显示全部楼层
回复 10# newswan
提示如下图,帮我再看看,我上传例子文件到百度云盘了,谢谢。


    链接:https://pan.baidu.com/s/1mPzdlyhFy4UY1l6OECw7IA?pwd=nro4
提取码:nro4
--来自百度网盘超级会员V10的分享
 楼主| 发表于 2024-1-28 20:24:57 | 显示全部楼层
回复 12# ppll2030

提示如下图,帮我再看看,我上传例子文件到百度云盘了,谢谢。

链接:https://pan.baidu.com/s/1mPzdlyhFy4UY1l6OECw7IA?pwd=nro4
提取码:nro4
--来自百度网盘超级会员V10的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:08 , Processed in 0.025638 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表