View previous topic :: View next topic |
Author |
Message |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Thu Jan 26, 2006 17:01 Post subject: Можно ли сделать следующее... |
|
|
С начала хочу выразить мое глубокое уважение к создателю этой великолепной программы, а так же тем людям, кто занимается поддержкой и пишет плагины к ней.
У меня вопрос такой: имеется куча папок в 2-х окнах Total Commander 6.53, можно ли сравнить (путем выделения) папки не только по названию, но и по количеству папок внутри сравниваемых папок. Немного масло масленое получилось но вроде понято, да? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Thu Jan 26, 2006 17:18 Post subject: |
|
|
Видимо, средствами TC нельзя такое сделать.
Могу написать для тебя скрипт.
Посему, вопросы:
1. Сравнмвать только одну папку на одной панели с одной папкой на другой панели?
2. Имена этих папок совпадают?
3. Необходимо сравнивать только количество непосредственно подпапок без подсчета глубже вложенных папок?
4. Какой результат выводить? (Например, "Количество подпапок не совпадает!" или "В исходной папке - X подпапок, в сравниваемой папке - Y подпапок.")
5. Количество файлов сравнивать не надо?
6. Что-нибудь делать после сравнения кроме вывода результата? |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Thu Jan 26, 2006 17:49 Post subject: |
|
|
Ок сейчас отвечу.
1. Сравнивать все папки левой панели со всеми папками на правой по названию.
2. Имена папок обычно совпадают на 80-90 процентов по этому желательно выделить те папки которые не совпали.
3. В каждой сравниваемой папке могут находиться различное количество подпапок, но в этих подпапках идут только файлы, соответственно нужно сравнивать только количество первых вложенных папок.
4. Результат.. (если это диалоговое окно, то не надо)
5. количество файлов сравнивать не надо.
6. меня в принципе устроит если просто выделятся цветом те папки которые не совпадают и по названию и по количеству подпапок.
То есть в результате цветом выделятся только разноименные папки и папки с одинаковыми названиями, но с различным количеством вложенных в них папок. |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Thu Jan 26, 2006 17:56 Post subject: |
|
|
У меня в тотале есть функция "Сравнить с учетом подкаталогов" тогда сравнивается по названию и выделяется цветом, хотелось бы еще чтобы выделялись и папки с одинаковым названием, но различным количеством (в не зависимости от имени) подпапок. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Thu Jan 26, 2006 18:03 Post subject: |
|
|
ОК.
В принципе, думаю, не сложно. Над чем придется помучиться - выделение папок (цветом).
Только прямо сейчас не могу. Завтра утром попробую. |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Thu Jan 26, 2006 18:09 Post subject: |
|
|
Ок ты глянь там же есть готовый скрипт выделения папок.
Если не получиться можно оставить в окнах только найденные сравнения.
Заранее благодарен. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Thu Jan 26, 2006 18:35 Post subject: |
|
|
visual wrote: | Ок ты глянь там же есть готовый скрипт выделения папок. |
Ты это о чем? Где есть? |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 10:04 Post subject: |
|
|
Batya wrote: | visual wrote: | Ок ты глянь там же есть готовый скрипт выделения папок. |
Ты это о чем? Где есть? |
В тотале есть такая функция. Значит и скрипт наверно есть?  |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 10:22 Post subject: |
|
|
Batya
Спасай на тебя вся надежда! Я думаю задачу можно упростить и выделять только те папки в которых не совпадает количество подпапок. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 12:37 Post subject: |
|
|
visual wrote: | В тотале есть такая функция. Значит и скрипт наверно есть?  |
Неа. Команды TC к скриптам не имеют никакого отношения.
Итак, готово.
Перед запуском скрипта убедись, что у тебя установлена настройка "Выделять по Num+ файлы и каталоги".
Code: | '========================================================================
' Сравнивание папок в панелях TC на имена и количество вложенных подпапок
' В параметрах вызова из TC должно быть прописано (2 пар. через пробел):
' %P %T
'========================================================================
Dim FSO, TCS, FoldAct, FoldPas, Fold
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
Set FoldAct = FSO.GetFolder(WScript.Arguments(0))
Set FoldPas = FSO.GetFolder(WScript.Arguments(1))
Dim SelectList1, SelectList2
SelectList1 = ""
SelectList2 = ""
For Each Fold in FoldAct.SubFolders
If Not FSO.FolderExists(FoldPas.Path & "\" & Fold.Name) Then
SelectList1 = SelectList1 & ";" & Fold.Name
Elseif Fold.SubFolders.Count <> _
FSO.GetFolder(FoldPas.Path & "\" & Fold.Name).SubFolders.Count Then
SelectList1 = SelectList1 & ";" & Fold.Name
SelectList2 = SelectList2 & ";" & Fold.Name
End If
Next
For Each Fold in FoldPas.SubFolders
If Not FSO.FolderExists(FoldAct.Path & "\" & Fold.Name) Then
SelectList2 = SelectList2 & ";" & Fold.Name
End If
Next
TCS.LockTC True
TCS.Pause = 10
If Len(SelectList1) > 0 Then
SelectList1 = Mid(SelectList1, 2)
TCS.SendCommand 521 'cm_SpreadSelection
TCS.SendKeystroke SelectList1 & "{ENTER}"
End If
If Len(SelectList2) > 0 Then
SelectList2 = Mid(SelectList2, 2)
TCS.SendKeystroke "{TAB}"
TCS.SendCommand 521 'cm_SpreadSelection
TCS.SendKeystroke SelectList2 & "{ENTER}"
TCS.SendKeystroke "{TAB}"
End If
TCS.LockTC False
Set FSO = Nothing
Set TCS = Nothing
Set Fold = Nothing
Set FoldAct = Nothing
Set FoldPas = Nothing
Wscript.Quit()
|
Сохрани код в файл с расширением vbs, повесь этот файл на кнопку (можно просто перетащить на панель). В параметрах кнопки надо указать 2 параметра (через пробел):
%P %T
Для работы скрипта ты должен у себя на компе зарегистрировать Script Helper. |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 12:47 Post subject: |
|
|
Спасибо большое дружище!
а что такое Script Helper. у меня пара скриптов работает без него.
Или именно под этот скрипт нужно регистрировать? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 12:54 Post subject: |
|
|
В моем скрипте объявляется объект TCScript.Helper. Он должен быть зарегистрирован в системе. Что это такое - см. ссылку в предыдущем посте. |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 13:08 Post subject: |
|
|
Не пойму как работает.
жму на кнопку - вылетает окно "добавить выделение" и в след заним "файл не найден" |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 13:27 Post subject: |
|
|
Ты установил настройку "Выделять по Num+ файлы и каталоги"?
Если - да, то попробуй время задержки сделать больше, например:
|
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 15:03 Post subject: |
|
|
Поставил галку, точнее она стояла уже - Выделять(по Num+и др.) Файлы и каталоги
Время задердки сделал больше не помогает! |
|
Back to top |
|
 |
|