本帖最后由 aloha20200628 于 2024-8-7 20:52 编辑
回复 1# walkercolin
以下代码存为 test.bat 置于图片和视频文件所在目录下运行...
批处只能处理不超过2GB的文件尺寸值,超出此限须调用外部计算方法解决,以下代码调用powershell方法(仅因其句式简捷)
运行结果会对每个目标目录更名,其更名格式》“原目录名 [xxxPyyyV-zzzMB]” 或 “原目录名 [xxxPyyyV-zzzGB]”,其中 xxx 或 yyy 可能=0(对应图片或视频文件数量=0)
- @echo off &setlocal enabledelayedexpansion &for /d %%d in (*) do (
- pushd "%%d" &set/a "np=0,zp=0,nv=0,zv=0"
- for /f "tokens=1-2 delims=个文件 " %%a in (
- '2^>nul dir /a-d/-c *.jpg *.png *.bmp^|find " 个文件 " ') do (set "np=%%a"&set "zp=%%b")
- for /f "tokens=1-2 delims=个文件 " %%a in (
- '2^>nul dir /a-d/-c *.mp4 *.avi *.mov *.mkv^|find " 个文件 " ') do (set "nv=%%a"&set "zv=%%b")
- for /f %%v in (
- ' powershell "if((!zp!+!zv!) -lt 1gb){[math]::round(-(!zp!+!zv!)/1mb,2)}else{[math]::round((!zp!+!zv!)/1gb,2)}" ') do set "zpv=%%v"
- if "!zpv:~0,1!"=="-" (set "zpv=!zpv:~1!MB") else (set "zpv=!zpv!GB")
- popd & ren "%%~fd" "%%d [!np!P!nv!V-!zpv!]"
- )
- endlocal&pause&exit/b
复制代码
|