Добавлено: Ср фев 25, 2015 09:38
Как рассчитывал? А то у меня 100% получилось в тестовой структуре.Flasher писал(а):Вероятность, что две ближайшие группы совпадут по размеру, но окажутся разными по содержимому = 0,0000000000000001%.
Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
Как рассчитывал? А то у меня 100% получилось в тестовой структуре.Flasher писал(а):Вероятность, что две ближайшие группы совпадут по размеру, но окажутся разными по содержимому = 0,0000000000000001%.
Что такое тестовая структура? Я про жизнь, а не спец. подгон.sa писал(а):А то у меня 100% получилось в тестовой структуре.
Я тоже про жизнь. Результат получился в наобум выбранном каталоге архивных файлов, ну скажем, заказов изделий. Сам был удивлён 100% показателем. Случай, кстати, похож на описываемый Avada.Flasher писал(а):Что такое тестовая структура? Я про жизнь, а не спец. подгон.
У меня в дубликатах оказалось 5 групп, одинаковых по размеру, но и ровно столько же, различающихся по содержанию.Flasher писал(а):А как ты вычислил, что это 100% показатель?
Точно, я про случай со 100%.Flasher писал(а):Это не имеет со 100% случаев ничего общего.
Ну вот я, скажем пробую выполнить поиск с дубликатами в подкататоге Plugins в TC. Если по имени, размеру и содержимому — 14 групп, 30 файлов. Если по имени и размеру — 20 групп, 44 файла. Расширения файлов самые разные — SFX, INI, TXT, HTML, CSS, DLL... Так что не очень мало и не очень много, а просто бывает.Flasher писал(а):Вот такие ситуации насколько часто бывают?
Мы обсуждаем соседние группы дубликатов с файлами одного размера. Т.е. птица "по содержимому" обязательна.Avada писал(а):Если по имени и размеру — 20 групп, 44 файла.
Код: Выделить всё
'=============================================================
' Выделить дубликаты кроме первых в группах результатов поиска
' Параметр: %P
'=================== Путь к утилите TCFS2 ====================
TCFS2 = """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"""
'=============================================================
If WScript.Arguments.Count Then WScript.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
With CreateObject("WScript.Shell")
.Run TCFS2 & " /ef msg($0B,0) tcm(3302) tcm(2018) tcm(3304)",,True
On Error Resume Next
A = .RegRead(R) : If A > 0 Or Err.Number <> 0 Then .RegWrite R, 0, "REG_DWORD"
List = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
For Each F in Split(List, vbNewLine)
If .Run("fc /b """ & F & """ """ & F1 & """", 0, True) = 0 Then S = S & vbNewLine & F
F1 = F
Next : Temp = CreateObject("Shell.Application").NameSpace(._
Environment("Process")("TEMP")).Self.Path & "" & FSO.GetTempName
FSO.CreateTextFile(Temp,,True).Write S
.Run "%comspec% /c clip < """ & Temp & """", 0, True
.Run TCFS2 & " /ef msg($0B,1) tcm(2033)"
.Run "%comspec% /c type|clip ", 0
FSO.DeleteFile Temp, 1 : If A > 0 Then .RegWrite R, A, "REG_DWORD"
End With
А тут ещё пугают тем , что и ненадёжно это:Flasher писал(а):но он жутко медленный
нужно будет к скрипту прикручивать проверку файлов по содержимому (с помощью внешней утилиты командной строки или средствами скриптов, второе будет медленно и еще ненадежно с нетекстовыми файлами).