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 

Использование NTFS Links, для увеличения места на диске

 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Koros



Joined: 07 Oct 2006
Posts: 4

Post (Separately) Posted: Sat Oct 07, 2006 10:33    Post subject: Использование NTFS Links, для увеличения места на диске Reply with quote

У меня такая ситуация, на NTFS диске в разных папках есть полностью одинаковые файлы, как можно максимально быстро оставить только по одной копии каждого файла, а для остальных создать NTFS ссылки.

P.S. файлов примерно 3000, вручную создавать ссылки слишком долго
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6192
Location: Москва

Post (Separately) Posted: Sat Oct 07, 2006 15:48    Post subject: Reply with quote

Koros
NTFS links тут, скорее всего, будет бесполезен. Не для того он создавался...
Если винда XP, можно воспользоваться стандартной прожкой fsutil. Сначала сделать поиск всех дубликатов, забросить их имена с путями в BAT-файл и дописать в начале вызов этой программы. Каждая строка должна быть в формате:
Code:
fsutil hardlink create <имя создаваемой ссылки> <существующий файл>

Потом удалить все существующие дубликаты, пути к которым указал в поле <имя создаваемой ссылки>, ну и запустить этот батничек.

PS: Тема больше относится к дополнительным внешним средствам, так что переношу в "Плагины Total Commander".
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Koros



Joined: 07 Oct 2006
Posts: 4

Post (Separately) Posted: Sat Oct 07, 2006 20:43    Post subject: Reply with quote

В данном случае программа, которой будут создаваться ссылки значения не имеет, проблема в том что среди дубликатов примерно 1200 различных файлов, т.е. каждый файл имеет 2-3 копии, причем имена дублирующихся файлов различны (одинаково только содержание, и размер естественно).

Предложенный вариант мне не подходит, потому что для этого в бат файле надо 1200 раз прописать соответствующий <существующий файл>, разный для каждых 2-3 строчек, вручную это делать долго.

Такой бат файл можно было бы без проблем сгенерировать с помощью любой простенькой программки, при условии что Total бы разделял группы дубликатов в списке при сохранении, иначе придется повторно сравнивать файлы из найденных дубликатов.

Вобщем проблема в следующем - как можно сохранить список, найденных дубликатов из тотала, разделив к.л. образом их на группы. Вариант с копированием экрана со списком с помощью snagit и т.п. не подходит.
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Sat Oct 07, 2006 21:40    Post subject: Reply with quote

Koros, тебе сюда.
Back to top
View user's profile Send private message
Koros



Joined: 07 Oct 2006
Posts: 4

Post (Separately) Posted: Sat Oct 07, 2006 23:06    Post subject: Reply with quote

Большое спасибо, подредактировал скрипт, все получилось.
Back to top
View user's profile Send private message
Zoooom



Joined: 28 Dec 2004
Posts: 45

Post (Separately) Posted: Fri Oct 13, 2006 01:28    Post subject: Reply with quote

а выложить сюда готовый скриптик что находит дубликаты и меняет их на линки?
так лениво делать во второй раз то что у других получилосьSmile
Back to top
View user's profile Send private message
Koros



Joined: 07 Oct 2006
Posts: 4

Post (Separately) Posted: 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, вот и все.
Единственная проблема при испльзовании этого скрипта - у одинаковых файлов должны быть одинаковые имена, а так бывает не всегда.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group