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

TOP

本帖最后由 ppll2030 于 2024-1-28 22:26 编辑

回复 15# qd2024


    毒盘非会员,无法下载。
复制代码保存为bat文件,然后视频文件夹拖拽到bat文件上就可以了。
脚本需要第三方ffmpeg.exe。
第三行的ffmpeg路径请修改为自己的实际路径。
提示找不到文件,可能视频后缀名不对。已添加多个常用视频
照搬二楼的码。去除echo,无法更名的bug,12楼的已更正

TOP

回复  newswan


    这样   被拖到BAT上的文件夹A里 不包含 视频文件  A下有B C D等文件夹 B C D等文件 ...
qd2024 发表于 2024-1-29 20:02


这个题目有点意思,我也来练练手,欢迎测试。
1、增加了同时识别多种音频视频格式。
2、增加了文件个数统计。
3、需第3方FFmpeg,比系统自带识别格式更多。
4、避开08 09无效数字的bug
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set folder=%~1
  4. REM 请修改自己的实际路径
  5. set ffpath=D:\FFmpeg\ffmpeg.exe
  6. for /f "delims=" %%f in ('dir /b /ad "%~1"') do (
  7.     set /a  foldermin=0
  8.     set /a n=0
  9.     pushd "%~1"
  10.     REM 可添加多种格式,适用于一个文件夹内有多种格式的视频。
  11.     for /f "delims=" %%i in ('dir /b /s /a-d "%%f" ^| findstr /i ".mp3$ .mp4$ .avi$ .mkv$ .rmvb$ .wmv$ .flac$ .flv$"') do (
  12.         for /f "tokens=2 delims=, " %%a in ('%ffpath% -i "%%i" 2^>^&1 ^| findstr "Duration:"') do set "str=%%a"
  13.         set str=!str:~0,-3!
  14.         for /f "tokens=1-3 delims=:" %%x in ("!str!") do (
  15.             set "hh=%%x"
  16.             set "mm=%%y"
  17.             set "ss=%%z"
  18.             set /a minutes=1!hh!*60-6000
  19.             set /a minutes+=1!mm!-100
  20.             if !ss! neq 0 (set /a minutes+=1)
  21.         )
  22.         ::echo   !str!      !minutes!
  23.         set /a  foldermin+=!minutes!  
  24.         set /a n+=1
  25.     )
  26.     REM 执行更名,请去除 echo
  27.     echo ren "%%~f" "%%~nf【共!n!个视频,总时长!foldermin!分钟】"
  28.     set /a Totalmin+=!foldermin!
  29.     set /a Totaln+=!n!
  30.     popd
  31. )
  32. REM 执行更名,请去除 echo
  33. echo ren "%~1" "%~n1【共!Totaln!个视频,总时长!Totalmin!分钟】"
  34. pause
复制代码

TOP

返回列表