Board logo

标题: [其他] 批处理查找出同一文件夹下类型和大小的图片文件移动到指定位置 [打印本页]

作者: 雷厉风行    时间: 2020-12-10 12:18     标题: 批处理查找出同一文件夹下类型和大小的图片文件移动到指定位置

本帖最后由 雷厉风行 于 2020-12-12 15:42 编辑

http://www.bathome.net/thread-35931-1-1.html
论坛里这个只是收集数据,我希望将重复的文件都提取出来移动至D盘文件夹3里面,请问如何修改.
作者: smss    时间: 2020-12-10 12:49

  1. @Echo off&SetLocal EnableDelayedExpansion
  2. if not exist D:\文件夹3 md D:\文件夹3
  3. for /f "tokens=*" %%a in ('dir/a-d/b/oe')do set/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
  4. for /l %%a in (1,1,%c%)do set/a d=%%a+1&for /l %%b in (!d!,1,%c%)do if not !b%%a!.==. call :1 %%a %%b
  5. goto :eof
  6. :1
  7. if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&move "!a%2!" D:\文件夹3\
  8. goto :eof
复制代码

作者: 雷厉风行    时间: 2020-12-10 13:46

本帖最后由 雷厉风行 于 2020-12-10 13:52 编辑

多谢帮忙,下面代码是否同时多文件夹多个运行是否会出错呢,我之前试过测试出现误删?
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%a in ('dir/a-d/b/oe') do set/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
for /l %%a in (1,1,%c%) do set/a d=%%a+1&for /l %%b in (!d!,1,%c%) do if not !b%%a!.==. call :1 %%a %%b
goto :eof
:1
if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&del "!a%2!"
goto :eof这代码出错率太高
作者: 雷厉风行    时间: 2020-12-10 14:10

http://www.bathome.net/viewthrea ... D%BA%CD%B4%F3%D0%A1这贴方法如何?
3楼代码图片超万张得会很慢,我有个思路,怎样判断相同大小属性字节也有错误这问题或MD5这不知道会不会变更慢,我提高速度思路是文件夹应大小排序,批处理将左右10-20一组快速对比并删除一直延伸下去




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2