批处理筛选部分同名的文件

例子,文件夹下有很多文件,有的文件尾部不同,文件名末尾可能有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文件夹备份
展开
 我来答
nameyu8023
2014-12-24 · TA获得超过529个赞
知道小有建树答主
回答量:640
采纳率:68%
帮助的人:411万
展开全部
@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.放在同目录运行即可

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式