Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Lil Crazy:
А как это написать в коде скрипта? »
вариант с использованием md5deep:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

:NUM
::--------------------------------
:: Количество каталогов для поиска
::--------------------------------
Set /P $NUM="Input number of folders: "
Set $IDX=1& Set /A $NUM+=0
::--------------------------------
If %$NUM% EQU 0 GoTo NUM

:DIR
::---------------------------
:: Имена каталогов для поиска
::---------------------------
Set /P $_%$IDX%="Input path to folder %$IDX% for search: "
Call Set $T=%%$_%$IDX%%%
If Exist %$T% Set /A $IDX+=1
::---------------------------
If %$IDX% LEQ %$NUM% GoTo DIR

Echo Удаление временных файлов...
2>Nul DEL /F/Q *.tmp *.~*
Echo Формирование списка файлов...
For /F "Tokens=1* Delims==" %%a In ('Set $_') Do md5deep -r "%%~b">>"%~n0.~t1"
Echo Сортировка списка...
Sort "%~n0.~t1" /O "%~n0.~t2"
Echo Группировка/обработка списков дублей...
Call :GRP_EX "%~n0.~t2" EX "%~n0.~t3"& Exit

:EX
::===================
:: Обработка списка
:: идентичных файлов
::-------------------
:: %1 - список файлов
::-------------------
 Echo -----
 Type "%~1"
::===================
GoTo :EOF

:GRP_EX
::====================================================
:: Обработка списка в формате: ключ значение 
:: группировка строк, вывод значений во временный файл
:: с последующей передачей на обработку в процедуру.
::----------------------------------------------------
:: %1 - входной файл списка
:: %2 - имя процедуры обработки
:: %3 - имя для рабочего файла
::----------------------------------------------------
 SetLocal& Set $F=& Set $A=& Echo _>>"%~1"
 For /F "UseBackQ Tokens=1*" %%a In ("%~1") Do (
 If Not "!$A!"=="%%~a" (If Not Defined $F (Echo %%~b>"%~3") Else (
 Set $F=& Call :%~2 "%~3"& Echo %%~b>"%~3")) Else Set $F=F& Echo %%~b>>"%~3"
 Set $A=%%~a)
::====================================================
EndLocal& GoTo :EOF
- имена файлов/каталогов не должны содержать символов "!"
- файлы с русскими буквами в именах обрабатываются, но отображаются знаком "?"

З.Ы. каждое ограничение можно снять ценой усложнения/замедления работы скрипта
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:16, 21-05-2010 | #4