Board logo

标题: [文件操作] [已解决]批处理如何筛选文件夹中重复图片并输出到新的子文件夹 [打印本页]

作者: XRROT    时间: 2024-10-31 15:43     标题: [已解决]批处理如何筛选文件夹中重复图片并输出到新的子文件夹

文件夹中很多图片内容重复,只是名称不一样,能否通过某种办法,比如筛选文件大小相同的图片,或者其他的方法,找出重复图片,再将他们移动到一个新文件夹
作者: aloha20200628    时间: 2024-10-31 16:46

本帖最后由 aloha20200628 于 2024-10-31 16:55 编辑

回复 1# XRROT

依照 文件大小 匹配完全相同的文件,并被移动至用其 文件大小 命名的子目录中...
  1. @echo off &setlocal enabledelayedexpansion &set "_v=0"
  2. for /f "delims=" %%F in ('dir/b/a-d/os/-c') do (
  3.    if "!_v!"=="%%~zF" (
  4.       md "%%~zF" &move /y "%%F" "%%~zF"
  5.       if exist "!_F!" move /y "!_F!" "%%~zF"
  6.    )
  7.    set "_F=%%F" &set "_v=%%~zF"
  8. ) 2>nul
  9. endlocal&pause&exit/b
复制代码

作者: XRROT    时间: 2024-10-31 17:01

回复 2# aloha20200628
感谢大神相助,但我还有一点小请求,这个代码完成的效果是将每组相同的文件分别输出到一个新的子文件夹,如果我是想将所有重复的文件输出到仅一个文件夹,应该如何修改呢
作者: aloha20200628    时间: 2024-10-31 17:14

本帖最后由 aloha20200628 于 2024-10-31 17:16 编辑

回复 3# XRROT

依照 文件大小 匹配完全相同的文件,并被移动至新建的 重复文件 这个子目录中...
  1. @echo off &setlocal enabledelayedexpansion &set "_v=0" &md "重复文件"
  2. for /f "delims=" %%F in ('dir/b/a-d/os/-c') do (
  3.    if "!_v!"=="%%~zF" (
  4.       move /y "%%F" "重复文件"
  5.       if exist "!_F!" move /y "!_F!" "重复文件"
  6.    )
  7.    set "_F=%%F" &set "_v=%%~zF"
  8. ) 2>nul
  9. endlocal&pause&exit/b
复制代码

作者: XRROT    时间: 2024-10-31 17:21

回复 4# aloha20200628
感激不尽!!完美解决了我的问题,非常感谢!
作者: yyz219    时间: 2024-11-3 07:08

回复 4# aloha20200628

谢谢




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