Windows批处理文件,用于在硬盘中查找重复大小的文件(无论名称和扩展名如何)

son*_*nga 1 windows size batch-file find duplicates

我想要一个批处理文件(Windows CMD是解释器,.bat)来执行此类任务:

1)搜索文件夹及其子文件夹(整个硬盘)

2)查找相同大小的文件(无论文件名和扩展名如何)

3)显示这些文件(或不显示)

感谢您的任何帮助!:)

编辑:

使用以下命令,我可以知道文件具有的所有大小...

@echo off
set "filename=*.*"
for %%A in (%filename%) do echo.Size of "%%A" is %%~zA bytes
Run Code Online (Sandbox Code Playgroud)

但是现在最大的问题是,您需要比较第一个,其余的等等!

Aac*_*ini 5

下面的批处理文件应该可以解决您的问题;但是,请注意,尽管它看起来很简单,但是它基于高级概念,例如批处理文件中的阵列管理

@echo off
setlocal EnableDelayedExpansion

rem Group all file names by size
for /R %%a in (*.*) do (
   set "size[%%~Za]=!size[%%~Za]!,%%~Fa"
)

rem Show groups that have more than one element
for /F "tokens=2,3* delims=[]=," %%a in ('set size[') do (
   if "%%c" neq "" echo [%%a]: %%b,%%c
)
Run Code Online (Sandbox Code Playgroud)

如果文件数量很大或起始文件夹的路径较长,则此程序可能会花费太多时间。