@echo off
setlocal enabledelayedexpansion
:: Nome do arquivo de saída
set "arquivo_saida=duplicados.txt"
:: Limpa o arquivo de saída se ele já existir
if exist "%arquivo_saida%" del "%arquivo_saida%"
echo Analisando arquivos duplicados na pasta...
echo. > "%arquivo_saida%"
echo ARQUIVOS DUPLICADOS ENCONTRADOS >> "%arquivo_saida%"
echo ========================================= >> "%arquivo_saida%"
echo. >> "%arquivo_saida%"
:: Variável para armazenar os nomes sem extensão
set "nomes_arquivos="
:: Primeiro loop: coleta todos os nomes sem extensão
for %%f in (*.*) do (
set "arquivo=%%~nf"
set "nomes_arquivos=!nomes_arquivos!!arquivo! "
)
:: Contadores
set /a total_duplicados=0
set /a arquivos_verificados=0
:: Segundo loop: verifica duplicatas
for %%f in (*.*) do (
set "arquivo_atual=%%~nf"
set /a count=0
:: Verifica quantas vezes o nome aparece
for %%a in (!nomes_arquivos!) do (
if "%%a"=="!arquivo_atual!" (
set /a count+=1
)
)
:: Se encontrou duplicata e ainda não foi registrada
if !count! gtr 1 (
find /i "!arquivo_atual!:" "%arquivo_saida%" > nul
if errorlevel 1 (
echo !arquivo_atual!: >> "%arquivo_saida%"
set /a total_duplicados+=1
:: Lista todos os arquivos com esse nome
for %%d in ("!arquivo_atual!.*") do (
echo - %%~nxd >> "%arquivo_saida%"
)
echo. >> "%arquivo_saida%"
)
)
set /a arquivos_verificados+=1
)
echo. >> "%arquivo_saida%"
echo Total de arquivos verificados: !arquivos_verificados! >> "%arquivo_saida%"
echo Total de nomes duplicados encontrados: !total_duplicados! >> "%arquivo_saida%"
echo Análise concluída. Resultados salvos em "%arquivo_saida%".
pause
0 Comentários