![Board logo](images/default/logo.gif)
标题: [文本处理] 获取文件夹下视频文件的分辨率和帧率 [打印本页]
作者: gddsssko 时间: 2024-5-8 17:53 标题: 获取文件夹下视频文件的分辨率和帧率
文件夹下有很多子文件夹,子文件夹下有几个视频,想知道这些视频是分辨率和帧率(比如8K60fps),能以目录树形式展示出来吗?
作者: 77七 时间: 2024-5-8 23:34
简单显示
下载mediainfo (http://bcn.bathome.net/s/tool/index.html?key=mediainfo)
- @echo off
- rem 批处理保存为utf-8编码格式
- chcp 65001 >nul
- cd /d "%~dp0"
- for /d %%d in (*) do (
- echo %%d
- for %%i in ("%%d\*.mp4") do (
- for /f "delims=" %%a in ('mediainfo --Output^="Video;分辨率:%%Width%%x%%Height%% 帧率:%%FrameRate%%" "%%i"') do (
- echo ---%%~nxi %%a
- )
- )
- echo=
- )
- pause
复制代码
作者: gddsssko 时间: 2024-5-9 11:49
本帖最后由 gddsssko 于 2024-5-9 12:00 编辑
回复 2# 77七
显示:Press any key to continue . . .,然后就没结果了。请问是我哪里没做对?
环境变量也配置了
C:\Users\12345>MediaInfo
Usage: "MediaInfo [-Options...] FileName1 [Filename2...]"
"MediaInfo --Help" for displaying more information
作者: 77七 时间: 2024-5-9 12:08
回复 3# gddsssko
文件夹名称都不显示吗?把批处理文件放在顶楼中的”文件夹下“再试试
作者: gddsssko 时间: 2024-5-9 13:12
回复 4# 77七
可以了,是我把测试文件直接放到主文件夹下的没显示。
请问如果直接把分辨率和帧率写入到子文件夹上应该怎么改?(只考虑子文件夹下的其中任意一个视频,因为子文件夹下的视频分辨率和帧率都一样),有条件再加上子文件夹内存大小。
作者: gddsssko 时间: 2024-5-9 14:51
回复 4# 77七
@echo off
chcp 65001 >nul
cd /d "%~dp0"
for /d %%d in (*) do (
setlocal enabledelayedexpansion
for %%i in ("%%d\*.mp4") do (
for /f "delims=" %%a in ('mediainfo --Output^="Video;%%Width%%x%%Height%% %%FrameRate%%" "%%i"') do (
set "info=%%a"
ren "%%d" "%%d !info!"
endlocal
exit /b
)
)
)
pause
请问我改的这个怎么处理完第一个子目录就结束了
作者: 77七 时间: 2024-5-9 15:06
本帖最后由 77七 于 2024-5-9 15:08 编辑
回复 6# gddsssko
exit /b和call搭配使用及时退出循环。- @echo off
- rem 批处理保存为utf-8编码格式
- chcp 65001 >nul
- cd /d "%~dp0"
- for /f "delims=" %%d in ('dir /b /ad') do (
- for /f "tokens=3" %%a in ('dir /s /-c "%%d" ^|findstr /rec:" bytes"') do (
- set s=%%a
- )
- call :1 "%%d"
- )
- pause & exit
-
- :1
- for %%i in ("%~1\*.mp4") do (
- for /f "delims=" %%a in ('mediainfo --Output^="Video;分辨率:%%Width%%x%%Height%% 帧率:%%FrameRate%%" "%%i"') do (
- for /f "delims=." %%b in ('powershell -c "%s%/1024/1024"') do (
- ren "%~1" "%~1 %%a 大小:%%b M"
- exit /b
- )
- )
- )
- exit /b
复制代码
作者: gddsssko 时间: 2024-5-9 15:29
回复 7# 77七
ok了,感谢大佬,大佬真帅
作者: gddsssko 时间: 2024-5-16 10:08
回复 7# 77七
请问我后期又加入了一些子文件夹,再命名的话那些已经改名的文件夹会叠加视频信息,怎么判定已经改名的不执行这个批处理呢?
作者: 77七 时间: 2024-5-16 11:42
修改7楼代码第5行为:- for /f "delims=" %%d in ('dir /b /ad ^|findstr /rvc:"[0-9][0-9][0-9][0-9]*x[0-9][0-9][0-9][0-9]*"') do (
复制代码
即排除 包含 "3位及以上数字x3位及以上数字" 的文件名
作者: gddsssko 时间: 2024-5-16 12:46
回复 10# 77七
感谢感谢,大佬真帅
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |