Estou tentando limpar uma unidade de arquivos duplicados e editei um lote que listei todos os arquivos duplicados em um documento de texto para que eu revise mais tarde e determine qual deles manter. O problema que estou tendo atualmente é que ele lista todos os arquivos duplicados, mas não listará o caminho de arquivo do arquivo original. Idealmente, gostaria que o arquivo de texto fosse formatado da seguinte forma:
Originalfile1
-Copy1 tamanho
-Copy2 tamanho
Tamanho -Copy3
Originalfile1
-Copy1 tamanho
Tamanho -Copy2
Este é o lote que estou usando atualmente:
setlocal disableDelayedExpansion
set root="c:\users\devon\desktop\test"
set "prevTest=none"
for /f "tokens=1-3 delims=:" %%A in (
'"(for /r "%root%" %%F in (*) do @echo %%~nxF:%%~fF:)|sort"'
) do (
set "currTest=%%A"
set size=%%~zC
set "currFile=%%B:%%C"
setlocal enableDelayedExpansion
if !currTest! equ !prevTest! (
>>C:\d\test.txt echo !currFile! : !size! Bytes
)
endlocal
set "prevTest=%%A"
)
pause
Ainda estou aprendendo, mas atualmente o mais próximo que posso obter do formato é
copy1
copy2
copy3
copy1
copy2
Tags windows batch filesystems cmd.exe