Defina seu %startfolder%
real e observe a saída. Se estiver bom, remova echo
antes de del
:
@echo off &SETLOCAL
SET "startfolder=."
FOR /r "%startfolder%" %%i IN (*) DO call:doit "%%~i"
goto:eof
:doit
SET "fname=%~nx1"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "fsize=!$%fname%!"
IF DEFINED $!fname! (
ENDLOCAL
IF "%fsize%"=="%~z1" ECHO DEL "%~1"
) ELSE (
ENDLOCAL
SET "$%~nx1=%~z1"
)
goto:eof
O código não apaga se os arquivos forem diferentes.