Тема: CMD/BAT: поиск в txt файле повторяшихся строк
Доброго времеени суток. Поставленна задача: найти в коталоге повторяюшиеся файлы (тоесть найти файл 1.mp3, копии которого могу лежать в многих папках).
Мой планируемый алгоритм - 1) Создать txt файл в который будут занесены все названия и расширения файлов
2) Построчно пройтись по созданному файлу и создать новый файл где будут указаны только повторяшиеся файлы с указанием полных путей к ним.
В написание bat файла застопорился на шаге перебора данных в созданном списке файлов. Не знаю как создать алгоритм перебора и отсева правильно.
Заранее спасибо.
PS.
Не иклченно, что я не правильно пошел в плане создания алгоритма. За варианты более простого решения задачи нахождения повторяюшихся файлов огронейшее спасибо.
@echo off
chcp 1251
echo vvedite imya texstovogo faila
:sozdanie
set /p "naz=Vashe nazvanie?"
if not exist %naz%.txt goto notexist
echo fail s takim imenem sushestvuet
set /p "vub=Jelaete vvesti drugoe imya (y/n)?"
if %vub%==y goto sozdanie
if %vub%==n goto exit
:notexist
for /r . %%i in (*.*) do (
echo %%~ni%%~xi >> %naz%.txt
)
for /f %%i In (%naz%.txt) do (
)
:exit
pause
Чуть позже меня немного осенило как можно реализовать отсев повторяюшихся файлов. Попробую наглядно его описать:
1) Имеем файл с названием файлов (1.txt)
2) Скрипт вырезает первый член списка и вносит его в новый созданный txt файл. (2.txt) Плолучаем 1.txt со старым списком файлов - первый член. И 2.txt первым из списка файлом
3) Проверяем все оставшиеся файлы в 1.txt на совпадение с 2.txt. Если такое совпадение происходит, то вырезаем и вствляем в 2.txt. (в итоге все файлы с одинаковым именем окажутся в 2.txt. )
4) Данные о совпавших файлах вырезаем и вставляем в опять же созданный 3.txt.
5) Если совпадений не было, то файл просто стирается из 2.txt
6) Алгоритм проводим по каждому члену списка 1.txt пока он не опустеет.
7) В завершение дабы не захломлять корень файлами, можно скопировать информацию о всех повторяюшихся файлах в 1.txt. А 2ой и 3ий дкументы удалить.
Как реализовать этот алгоритм не представля. Ибо не зна как сдеать вырезание одной строки в ругой txt. И как задать лгоритм перебора со сравнением путем консольных команд.
Заранее спасибо за помошь. (Возможно я перемудрил с алгоритмами)

