Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Использование NTFS Links, для увеличения места на диске 
Author Message
Koros



PostPosted: Fri Oct 13, 2006 16:23    Post subject: Reply with quote

Вот скрипт который я использовал для создания 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, вот и все.
Единственная проблема при испльзовании этого скрипта - у одинаковых файлов должны быть одинаковые имена, а так бывает не всегда.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group