Koros
|
Posted: Fri Oct 13, 2006 16:23 Post subject: |
|
|
Вот скрипт который я использовал для создания bat файла и для выделения тех файлов, которые надо удалить.
Code: | '=====================[ Start of file ]=========================
' File: SelNotFirst.vbs
' Description: Удаляет все парные файлы кроме первого
' из списка, созданного поиском дубликатов в ТС
' Installation: Создайте кнопку на панели TC
' Команда: "диск:\путь\к\файлу\SelNotFirst.vbs"
' Параметры: "%L"
' Copyright: (c) 2006, Volniy
Option Explicit
Dim FSO, ListFile, SelFile,TCS, Selfile1, Selfile2, bat
Dim File1, File2, Cnt, Buf
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine
File2 = FSO.GetFileName(SelFile)
If StrComp(File1, File2, 1) = 0 Then
Buf = Buf & SelFile & vbNewLine
Cnt = Cnt + 1
Selfile2 = Selfile
bat = bat & "fsutil.exe hardlink create " & chr(34) & Selfile2 & chr(34) & " " & chr(34) & Selfile1 & chr(34) & vbNewLine
Else
Selfile1 = Selfile
End If
File1 = File2
Loop
ListFile.Close
'TCS.ClearClip
TCS.SetTextToClip CStr(Buf)
TCS.SendCommand "cm_LoadSelectionFromClip", True
Set ListFile = FSO.CreateTextFile("C:\Temp\1.bat", 1)
ListFile.Write(bat)
ListFile.Close
Set ListFile = Nothing
Set FSO = Nothing
Set TCS = Nothing
MsgBox "Выделено дубликатов: " & Cnt, vbInformation, "Завершено!"
WScript.Quit
'=====================[ End of file ]========================= |
Пояснения:
Сначала надо запустить поиск дубликатов, затем вывести все файлы на панель, выделить их и запустить скрипт (его надо повешать на к.л. кнопку), он сформирует bat файл при запуске которого создадутся NTFS ссылки, и выделит все дубликаты кроме первого в каждом блоке, их надо удалить, потом запустить 1.bat файл из папки C:\temp, вот и все.
Единственная проблема при испльзовании этого скрипта - у одинаковых файлов должны быть одинаковые имена, а так бывает не всегда. |
|