批处理筛选部分同名的文件
例子,文件夹下有很多文件,有的文件尾部不同,文件名末尾可能有250.jpg,500.jpg,1280.jpg3种文件,2505001280是尺寸大小的意思如果出现几个同名...
例子,文件夹下有很多文件,有的文件尾部不同,文件名末尾可能有250.jpg , 500.jpg , 1280.jpg 3种文件,250 500 1280是尺寸大小的意思
如果出现几个同名 不同尺寸的文件,保留1280.jpg的,其他都移动到bak文件夹备份
------------------------------分割线-----------------
tumblr_kqv2emfHa81qzyaoeo1_250.jpg
tumblr_kqv2emfHa81qzyaoeo1_500.jpg
tumblr_kqv2emfHa81qzyaoeo1_1280.jpg
tumblr_ksnpvgw9s31qaooc8o1_250.jpg
tumblr_ksnpvgw9s31qaooc8o1_500.jpg
tumblr_ksnpvgw9s31qaooc8o1_1280.jpg
如果出现几个同名 不同尺寸的文件,只保留最大尺寸1280.jpg的,然后把同名小尺寸的250.jpg和500.jpg都移动到bak文件夹备份 展开
如果出现几个同名 不同尺寸的文件,保留1280.jpg的,其他都移动到bak文件夹备份
------------------------------分割线-----------------
tumblr_kqv2emfHa81qzyaoeo1_250.jpg
tumblr_kqv2emfHa81qzyaoeo1_500.jpg
tumblr_kqv2emfHa81qzyaoeo1_1280.jpg
tumblr_ksnpvgw9s31qaooc8o1_250.jpg
tumblr_ksnpvgw9s31qaooc8o1_500.jpg
tumblr_ksnpvgw9s31qaooc8o1_1280.jpg
如果出现几个同名 不同尺寸的文件,只保留最大尺寸1280.jpg的,然后把同名小尺寸的250.jpg和500.jpg都移动到bak文件夹备份 展开
1个回答
展开全部
@echo off
setlocal enabledelayedexpansion
if not exist bak md bak\
for /f "delims=_ tokens=1,2*" %%a in ('dir /a-d/b *.jpg') do (
set tmp1=%%c
set tmp1=!tmp1:.jpg=!
for /f "delims=_ tokens=1,2*" %%x in ('dir /a-d/b/s %%a_%%b_*.jpg') do (
set tmp2=%%z
set tmp2=!tmp2:.jpg=!
if !tmp1! lss !tmp2! (
if exist "%%a_%%b_%%c" (
set /a sum+=1
move /y "%%a_%%b_%%c" "bak\"
)
)
)
)
echo %sum%
echo end...
pause
前提条件是你文件名格式必须你所述,文件名以_为分割 ,扩展名位JPG.放在同目录运行即可
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询