View previous topic :: View next topic |
Author |
Message |
Againster
Joined: 16 Mar 2006 Posts: 3 Location: Казань
|
(Separately) Posted: Thu Mar 16, 2006 15:24 Post subject: Выделение дубликатов |
|
|
Имеется папка Music, содержащая кучу (много) других папок, с музыкой соответственно (mp3). Хочу удалить дубликаты. Нахожу соответственно через поиск, потом файлы на панель. Дубликаты располагаются парами, тройками и т.д. Ручками выделять долго и нудно (много их). Как можно выделить дубликат(ы) для удаления?
Имеется ввиду что должен остаться только один файл из пары. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6192 Location: Москва
|
(Separately) Posted: Thu Mar 16, 2006 16:33 Post subject: |
|
|
Againster
Пока что в Тотале для этого нет способа. Где-то существовал скрипт для AutoHotkey, который выделяет такие файлы, о нём упоминали на оф. форуме, но ссылку на него не дали. |
|
Back to top |
|
 |
Моторокер

Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Thu Mar 16, 2006 16:40 Post subject: |
|
|
Хорошо бы такую фичу - выделить первый файл в блоке.
А обычно быстро-быстро перебираешь ручками Ins-Down Ins-Down Ins-Down Ins-Down Ins-Down |
|
Back to top |
|
 |
Againster
Joined: 16 Mar 2006 Posts: 3 Location: Казань
|
(Separately) Posted: Thu Mar 16, 2006 16:48 Post subject: |
|
|
2 Моторокер
А если 3 повтора? Не прокатит. |
|
Back to top |
|
 |
Моторокер

Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Thu Mar 16, 2006 17:02 Post subject: |
|
|
Если 3..N повторов, выделить первый файл в блоке, инвертировать выделение. |
|
Back to top |
|
 |
Againster
Joined: 16 Mar 2006 Posts: 3 Location: Казань
|
(Separately) Posted: Thu Mar 16, 2006 17:07 Post subject: |
|
|
в том то и дело что где 2 а где 3 повтора. А может и 4  |
|
Back to top |
|
 |
Моторокер

Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Thu Mar 16, 2006 17:32 Post subject: |
|
|
Какая разница сколько? Останутся невыделенными только первые файлы, остальные можно удалить. |
|
Back to top |
|
 |
Zoooom
Joined: 28 Dec 2004 Posts: 45
|
(Separately) Posted: Thu Mar 16, 2006 22:16 Post subject: |
|
|
1)скрипт для ннКрон: 1000 0 DO SEND-KEYS: "{INSERT}{DOWN}" LOOP
2)если выделять через один то в любом случае не удалятся все копии дубликатов. достаточно будет пройтись еще разок поиском для нахождения оставшихся копий(если копий штук 20 одного вида то не один раз ) |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Fri Mar 17, 2006 12:41 Post subject: |
|
|
Againster
Если имена у файлов-дубликатов совпадают, могу предложить следующий скрипт:
Code: | Dim ListFile, FSO, TCS, StreamFile
ListFile = Wscript.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
Set StreamFile = FSO.OpenTextFile(ListFile, 1)
Dim FileName1, FileName2
FileName1 = ""
Do While Not StreamFile.AtEndOfStream
SelFile = StreamFile.ReadLine
FileName2 = FSO.GetFile(SelFile).Name
If FileName1 = FileName2 Then
FSO.OpenTextFile(ListFile & "_", 8, True).WriteLine SelFile
End If
FileName1 = FileName2
Loop
StreamFile.Close
TCS.SendCommand "cm_LoadSelectionFromFile"
TCS.SendKeystroke ListFile & "_" & "{ENTER}"
FSO.DeleteFile(ListFile & "_")
Set FSO = Nothing
Set TCS = Nothing
Set StreamFile = Nothing
WScript.Quit() |
Для скрипта необходим Script Helper.
Как с этим работать...
Создать файл *.vbs с указанным кодом. Повесить файл на кнопку. В параметрах кнопки прописать %L. После выполнения поиска дубликатов нажать "Файлы на панель". Затем выделить все файлы. Нажать кнопку. Будут выделены все файлы в группе дубликатов, кроме первого. |
|
Back to top |
|
 |
D1P

Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Fri Mar 17, 2006 16:25 Post subject: |
|
|
У меня скрипт не работает, вместо этого запускается один из выделенных файлов. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Fri Mar 17, 2006 16:44 Post subject: |
|
|
D1P
Удали в строке
Code: | TCS.SendKeystroke ListFile & "_" & "{ENTER}" |
окончание
Как отрабатывает?
Должен отображаться диалог открытия файла, в котором указан файл, который содержит список файлов для выделения.
Можно попробовать перед указнной строкой сделать паузу:
|
|
Back to top |
|
 |
D1P

Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Fri Mar 17, 2006 18:24 Post subject: |
|
|
В обоих случаях (и с удалённым окончанием, и с добавленной паузой) эффект одинаков - открывается файл в программе по умолчанию. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Fri Mar 17, 2006 19:54 Post subject: |
|
|
D1P
Тогда:
Code: | Dim ListFile, FSO, StreamFile
ListFile = Wscript.Arguments(0)
MsgBox(ListFile & "_")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set StreamFile = FSO.OpenTextFile(ListFile, 1)
Dim FileName1, FileName2
FileName1 = ""
Do While Not StreamFile.AtEndOfStream
SelFile = StreamFile.ReadLine
FileName2 = FSO.GetFile(SelFile).Name
If FileName1 = FileName2 Then
FSO.OpenTextFile(ListFile & "_", 8, True).WriteLine SelFile
End If
FileName1 = FileName2
Loop
StreamFile.Close
Set FSO = Nothing
Set StreamFile = Nothing
WScript.Quit() |
После того, как скрипт отработает, посмотри, создался ли у тебя файл, имя котрого выводится в диалоговом окне.
В этом скрипте уж точно нет никаких запусков. |
|
Back to top |
|
 |
D1P

Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Fri Mar 17, 2006 20:39 Post subject: |
|
|
Да, файл создался, и в нём, как я понял, содержание верное. Немного поэкспериментировал самостоятельно, судя по всему некорректно отрабатывается команда TCS.SendKeystroke. |
|
Back to top |
|
 |
Вахмурка

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