Board logo

标题: [文件操作] 批处理如何在视频文件 文件名后 追加文件时长? [打印本页]

作者: ykhq2021    时间: 2021-8-14 20:13     标题: 批处理如何在视频文件 文件名后 追加文件时长?

手中有一些视频课  分别存放在当下目录下的不同子文件夹中,

如   视频文件\1
                 \2
                 \3
1 2 3 目录下存放视频文件

想在每个视频文件文件名后追加这个文件的播放时长 【89】

如     第1课 春天.mp4   执行批处理(或第三方囫)后 改名为   第1课 春天【89】.mp4

感谢 辛苦
作者: Batcher    时间: 2021-8-15 21:18

回复 1# ykhq2021


下载 ffmpeg.exe 和下面这个 test.bat 放在“视频文件”这个目录下执行 test.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
  5.     for /f "tokens=2 delims=, " %%a in ('ffmpeg -i "%%i" 2^>^&1 ^| find "Duration:"') do (
  6.         set "str=%%a"
  7.     )
  8.     set str=!str:~0,-3!
  9.     set str=!str::=:!
  10.     ren "%%i" "%%~ni【!str!】%%~xi"
  11. )
复制代码

作者: ykhq2021    时间: 2021-8-19 18:37     标题: RE: 批处理如何在视频文件 文件名后 追加文件时长?

回复 2# Batcher


    非常感谢  辛苦了

我想问一下 这个能不能以分钟形式出现   比如 【00:45:46】显示为【46】
                                                            【01:45:20】显示为【106】
作者: Batcher    时间: 2021-8-19 21:47

回复 3# ykhq2021
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
  5.     for /f "tokens=2 delims=, " %%a in ('ffmpeg -i "%%i" 2^>^&1 ^| find "Duration:"') do (
  6.         set "str=%%a"
  7.     )
  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+=!mm!
  15.         if !ss! neq 0 (
  16.             set /a minutes+=1
  17.         )
  18.     )
  19.     ren "%%i" "%%~ni【!minutes!】%%~xi"
  20. )
复制代码

作者: ykhq2021    时间: 2021-8-20 00:08

回复 4# Batcher


    测试成功 万分感激




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