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 

Выделение дубликатов
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Sat Mar 18, 2006 03:22    Post subject: Re: Выделение дубликатов Reply with quote

Againster wrote:
Как можно выделить дубликат(ы) для удаления?
Имеется ввиду что должен остаться только один файл из пары.

А если без этих заморочек с выделением: раз надо удалить лишнее, вот и удаляем его после того как Тотал это лишнее нам уже нашел.
Вот скрипт:

Code:
'=====================[ Start of file ]=========================

'  File:         DelNotFirst.vbs
'  Description:  Удаляет все парные файлы кроме первого
'                из списка, созданного поиском дубликатов в ТС
'  Installation: Создайте кнопку на панели TC
'                Команда: "диск:\путь\к\файлу\DelNotFirst.vbs"
'                Параметры: "%L"
'  Copyright:    (c) 2006, Volniy

Option Explicit
Dim FSO, ListFile, SelFile
Dim File1, File2, Cnt
Set FSO = CreateObject("Scripting.FileSystemObject")
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
     On Error Resume Next
     FSO.DeleteFile SelFile, True
     Cnt = Cnt + 1
  End If
  File1 = File2
Loop
ListFile.Close
Set ListFile = Nothing
Set FSO = Nothing
MsgBox "Удалено дубликатов: " & Cnt, vbInformation, "Завершено!"
WScript.Quit

'=====================[  End of file  ]=========================


Не забыть только выделить весь список найденных дубликатов перед запуском скрипта!
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Mon Mar 20, 2006 09:04    Post subject: Reply with quote

А с шагом полтора выделит? Бывает, что дубликатов 2 либо 3.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 20, 2006 12:39    Post subject: Reply with quote

Вахмурка wrote:
Выделение с любым шагом, причем, если нужно, неоднократное, а также снятие выделения. По-моему, это как раз то, что нужно.

Не совсем. Проблема как раз в том, что здесь идет выделение не по шагу, а по группам дубликатов, причем размеры групп разные.

Volniy
Smile Вообще-то задача изначально стояла:
Quote:
Как можно выделить дубликат(ы) для удаления?

Удалить-то - просто, а как выделить?
Лучше скажи, почему SendKeystroke может криво отрабатывать? Где-то проскакивало, что на XP SendKeys криво работает. Не знаешь, как обойти?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Mon Mar 20, 2006 22:00    Post subject: Reply with quote

Quote:
Проблема как раз в том, что здесь идет выделение не по шагу, а по группам дубликатов, причем размеры групп разные

Увы. Гислер использует не совсем стандартный listbox, поэтому извне, через SendMessage, получить доступ удается лишь к некоторым его свойствам. Однако, обратите внимание, что мой скрипт можно запускать а) неоднократно; б) с разными шагами; в) со снятием, а не только установкой выделения. То есть основную работу скрипт делает, а потом "экзотические" случаи можно ручками подправить. Все-таки в большинстве случаев группы одинаковые.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Tue Mar 21, 2006 01:42    Post subject: Reply with quote

Batya wrote:
Volniy
Smile Вообще-то задача изначально стояла:
Quote:
Как можно выделить дубликат(ы) для удаления?

Удалить-то - просто, а как выделить?

Я же хотел именно, как проще... Ну ладно, тогда можно переписать вот так:

Code:
'=====================[ Start of file ]=========================

'  File:         SelNotFirst.vbs
'  Description:  Удаляет все парные файлы кроме первого
'                из списка, созданного поиском дубликатов в ТС
'  Installation: Создайте кнопку на панели TC
'                Команда: "диск:\путь\к\файлу\SelNotFirst.vbs"
'                Параметры: "%L"
'  Copyright:    (c) 2006, Volniy

Option Explicit
Dim FSO, ListFile, SelFile,TCS
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
  End If
  File1 = File2
Loop
ListFile.Close
'TCS.ClearClip
TCS.SetTextToClip CStr(Buf)
TCS.SendCommand "cm_LoadSelectionFromClip", True
Set ListFile = Nothing
Set FSO = Nothing
Set TCS = Nothing
MsgBox "Выделено дубликатов: " & Cnt, vbInformation, "Завершено!"
WScript.Quit

'=====================[  End of file  ]=========================

Quote:
Лучше скажи, почему SendKeystroke может криво отрабатывать? Где-то проскакивало, что на XP SendKeys криво работает. Не знаешь, как обойти?

Насчет глюков с SendKeys подтверждают и Мелкомягкие. А в твоем скрипте, как я понял, проблема-то не в этом. Просто когда открывается виндовое диалоговое окно выбора файла фокус ввода может попадать совсем даже не в поле для имени файла (у меня, например, дерево дисков в фокусе), а SendKeys именно полю в фокусе шлет нажатия клавиш, вот и облом выходит. Я вообще очень неприветствую управление системными диалоговыми окнами через SendKeys: вполне можно наделать пакостей (например, поудалять файлы или типа того).
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Tue Mar 21, 2006 10:16    Post subject: Reply with quote

Volniy wrote:
"cm_LoadSelectionFromClip"

Блин, как же я раньше не видел этой команды?! Это же все решает!
Красиво Very Happy
Back to top
View user's profile Send private message
Olaf



Joined: 23 Mar 2006
Posts: 11

Post (Separately) Posted: Tue May 09, 2006 20:30    Post subject: Reply with quote

А у меня вот какой вопрос (вроде бы по теме): допустим у меня есть папка с файлами и я хочу поискать, и если есть на них дубликаты, то удалить их из всех прочих мест, кроме этой папки... это как-нибудь автоматизируется?
Back to top
View user's profile Send private message
funduk



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

Post (Separately) Posted: Tue May 09, 2006 21:14    Post subject: Reply with quote

Открой эту папку в другой панели и используй Shift+f2 (сам не пробовал, но должно работать)
Back to top
View user's profile Send private message
Olaf



Joined: 23 Mar 2006
Posts: 11

Post (Separately) Posted: Wed May 10, 2006 06:12    Post subject: Reply with quote

funduk
я имел в виду не совсем это; это работает, когда дубликаты тж находятся в одной папке, а я говорю о ситуации, когда они раскиданы по всему винту
Back to top
View user's profile Send private message
funduk



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

Post (Separately) Posted: Wed May 10, 2006 11:36    Post subject: Reply with quote

Нда, странно, что такой очевидный вариант не работает...
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Sat Dec 09, 2006 12:50    Post subject: Reply with quote

Всем привет!

Кто пользует ТК 7 - облегчилась ли там работа с дубликатами (если они одинаковы по содержанию и размеру - например TXT или HTML - но не по имени)?

Спасибо!
_________________
Xubuntu
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Sun Dec 24, 2006 19:29    Post subject: Reply with quote

Вахмурка wrote:
в большинстве случаев группы одинаковые


У кого как Smile

Всё-таки, с выходом 7 версии - есть ли решение проблемы выделения дубликатов "за один клик"?
Выделения, а не прямо удаления - т.к. мне лично нужно хотя вскользь на всё это посмотреть (особенно, когда 2000 маленьких дубликатов)...

Можно ли хотя бы получить "правильный" список файлов из панели дубликатов (не сплошняком, а с разделителями - строками из тире - как он и отображается)...

Написать Гислеру может?
_________________
Xubuntu
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sun Dec 24, 2006 19:36    Post subject: Reply with quote

Ник wrote:
Всё-таки, с выходом 7 версии - есть ли решение проблемы выделения дубликатов "за один клик"?

Нет, здесь всё остальсь так же.

Ник wrote:
Написать Гислеру может?

Писали уже...
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Sun Dec 24, 2006 19:49    Post subject: Reply with quote

И что Гислер ответил?

Мне он отвечает - и у меня создалось ощущение, что он общается только с юзерами, купившими ТК, и только тогда, когда они пишут с адреса, официально зарегистрированного в его базе покупателей.

Ответ обычно приходит через месяц...
_________________
Xubuntu
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sun Dec 24, 2006 22:15    Post subject: Reply with quote

Ник wrote:
И что Гислер ответил?

Точно не помню, но дискуссия была длинная. Он, как обычно, отнекивался, сообщая о всевозможных потенциальных проблемах, ему предлагали решение этих проблем. Чем всё закончилось, не помню, надо искать.

Ник wrote:
Ответ обычно приходит через месяц...

Это зависит от его загруженности. Иногда и по три месяца ждать приходится, а иногда в течение часа ответ приходит.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Page 2 of 8

 
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