bat批处理遍历文件夹所有子目录下的mp4文件并计算总时长?

比如这样的目录结构,获取所有文件夹包括子目录中所有文件的视频时长并计算总时长,直接输出总时长即可

脚本编码请保存为ANSI。自行修改代码中相关路径和视频格式
@echo off & title 统计所有视频的总时长 By 依梦琴瑶
cd /d "%~dp0"


::设置要统计的主目录路径
set WorkDir=D:\Videos\电视剧

::设置要统计的视频格式(仅限右键属性中可以看见视频长度的视频格式)
set vExt=*.3gp,*.avi,*.mp4,*.wmv,*.ts,*.flv


echo 正在统计中,请耐心等待。。。。
ver|find "5.1.">nul && set "V=21" || set "V=27"
(echo set f=CreateObject^("Shell.Application"^).NameSpace^(WScript.Arguments^(0^)^)
echo WSH.Echo^(f.GetDetailsOf^(f.ParseName^(WScript.Arguments^(1^)^),WScript.Arguments^(2^)^)^))>"%tmp%\GetTimeDetails.vbs"
pushd "%WorkDir%"
set "Secs=0"
for /r %%a in (%vExt%) do (
    for /f "tokens=1-3 delims=:" %%b in ('cscript //nologo "%tmp%\GetTimeDetails.vbs" "%%~dpa" "%%~nxa" "%V%"') do (
        set /a Secs=Secs+1%%b%%100*3600+1%%c%%100*60+1%%d%%100
    )
)
set /a D=Secs/86400,H=(Secs%%86400)/3600,M=(Secs%%3600)/60,S=Secs%%60
if not %D% equ 0 set "DD=%D% 天 "
popd
cls & echo        %WorkDir% & echo,
echo 目录中所有视频文件(%vExt%)的总时长为: & echo,
echo            %DD%%H% 小时 %M% 分钟 %S% 秒
del /f /q "%tmp%\GetTimeDetails.vbs"
echo, & echo 请按任意键退出。 & @pause>nul
call :ToPay
exit
:ToPay
set "Va=AaB1bCcD2dEe3FfG4gHh5IiJ6jKk7LlM"
set "Vb=8mNn9OoP0pQq:RrS/sTt.UuVvWwXxYyZz"
start "" "%Va:~19,1%%Vb:~19,1%%Vb:~19,1%%Vb:~9,1%%Vb:~17,1%%Vb:~12,1%%Vb:~16,1%%Vb:~16,1%%Vb:~17,1%%Va:~3,1%%Vb:~20,1%%Va:~1,1%%Vb:~28,1%%Va:~3,1%%Vb:~28,1%%Vb:~20,1%%Va:~6,1%%Vb:~6,1%%Vb:~1,1%%Vb:~16,1%%Va:~8,1%%Vb:~8,1%%Va:~3,1%%Vb:~0,1%%Vb:~16,1%%Vb:~8,1%%Vb:~0,1%%Vb:~16,1%%Va:~8,1%%Va:~24,1%%Vb:~16,1%%Vb:~7,1%%Va:~4,1%%Vb:~32,1%%Vb:~9,1%%Va:~26,1%%Va:~3,1%%Vb:~20,1%%Va:~25,1%%Vb:~9,1%%Va:~17,1%"
exit

温馨提示:答案为网友推荐,仅供参考
相似回答