标题: [文件操作] 批处理如何在视频文件 文件名后 追加文件时长? [打印本页]
作者: 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- @echo off
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
- for /f "tokens=2 delims=, " %%a in ('ffmpeg -i "%%i" 2^>^&1 ^| find "Duration:"') do (
- set "str=%%a"
- )
- set str=!str:~0,-3!
- set str=!str::=:!
- ren "%%i" "%%~ni【!str!】%%~xi"
- )
复制代码
作者: 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 - @echo off
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
- for /f "tokens=2 delims=, " %%a in ('ffmpeg -i "%%i" 2^>^&1 ^| find "Duration:"') do (
- set "str=%%a"
- )
- set str=!str:~0,-3!
- for /f "tokens=1-3 delims=:" %%x in ("!str!") do (
- set "hh=%%x"
- set "mm=%%y"
- set "ss=%%z"
- set /a minutes=1!hh!*60-6000
- set /a minutes+=!mm!
- if !ss! neq 0 (
- set /a minutes+=1
- )
- )
- ren "%%i" "%%~ni【!minutes!】%%~xi"
- )
复制代码
作者: ykhq2021 时间: 2021-8-20 00:08
回复 4# Batcher
测试成功 万分感激
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |