View previous topic :: View next topic |
Author |
Message |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 15:04 Post subject: |
|
|
С выделением проблемы какие то, может вместо выделения придумать что нибудь другое например оставить в окнах найденные не совпадения, или в текстовый файл их запихнуть? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 15:29 Post subject: |
|
|
visual wrote: | С выделением проблемы какие то, может вместо выделения придумать что нибудь другое например оставить в окнах найденные не совпадения, или в текстовый файл их запихнуть? |
Даже, не знаю, что у тебя с выделением. У меня работает.
Что значит "оставить в окнах найденные не совпадения"?
А в файл - легко.
В каком виде, с каким именем и куда класть? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 15:41 Post subject: |
|
|
Ааа... Вспомнил.
У тебя, случайно, при работе скрипта NumLock не моргает? Есть такой глюк в XP (у меня Win2k). |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 15:51 Post subject: |
|
|
Batya wrote: | Ааа... Вспомнил.
У тебя, случайно, при работе скрипта NumLock не моргает? Есть такой глюк в XP (у меня Win2k). |
У меня тоже win2k но когда num выключен то * также выделяет как и с включенным num
Может у нас версии разные ТС?
Last edited by visual on Fri Jan 27, 2006 15:56; edited 1 time in total |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 15:56 Post subject: |
|
|
в виде таблицы exсel типа в левой колонке то что не совпало вправой а в правой то что не совпало влевой.
Ну если это сложно или долго , то просто в текстовый файл доспустим диска D:\ название файла любое например "сравнение"
Только я потом разбирусь какая панель левая какая правая? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 16:15 Post subject: |
|
|
Давай, пока с выделением разберемся.
Поменяй кусок кода
Code: | 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
|
на
Code: | If Len(SelectList1) > 0 Then
SelectList1 = Mid(SelectList1, 2)
TCS.SendCommand 521 'cm_SpreadSelection
TCS.SendKeystroke SelectList1
End If
|
По-нормальному, у тебя должно отобразиться окно выделения с введенной маской выделения - перечень папок, которые нужно выделить. У тебя так?
Что происходит, если после этого нажать Enter? |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 16:28 Post subject: |
|
|
Ошибка сценарий с:\путь к файлу .vbs
строка 36 символ 3 ошибка типа SendKeystroke
код 800A000D
А потом окно выделения с введенной маской выделения - перечень папок, которые нужно выделить. |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 16:36 Post subject: |
|
|
но это окно у меня и в первом скрипте вылазило, и после него сразу файл не найден, я нажимал на ок. После чего выделялись все папки активной панели.
Пока у меня работает только когда захожу в 2 одинаковых каталога с одинаковым количеством подпапок. Тогда без всяких диалоговых окон ничего не происходит, то есть не выделяется ничего. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 16:49 Post subject: |
|
|
Хм... Не понятно.
Ладно, давай попробуем по-другому:
Code: | '========================================================================
' Сравнивание папок в панелях TC на имена и количество вложенных подпапок
' В параметрах вызова из TC должно быть прописано (2 пар. через пробел):
' %P %T
'========================================================================
Dim FSO, TCS, FoldAct, FoldPas, Fold, WS
Set WS = WScript.CreateObject("WScript.Shell")
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
WS.SendKeys SelectList1 & "{ENTER}"
End If
If Len(SelectList2) > 0 Then
SelectList2 = Mid(SelectList2, 2)
WS.SendKeys "{TAB}"
TCS.SendCommand 521 'cm_SpreadSelection
WS.SendKeys SelectList2 & "{ENTER}"
WS.SendKeys "{TAB}"
End If
TCS.LockTC False
Set FSO = Nothing
Set TCS = Nothing
Set Fold = Nothing
Set FoldAct = Nothing
Set FoldPas = Nothing
Wscript.Quit()
|
|
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 17:01 Post subject: |
|
|
Другой вариант - изменения показываю в Excell:
Code: | '========================================================================
' Сравнивание папок в панелях TC на имена и количество вложенных подпапок
' В параметрах вызова из TC должно быть прописано (2 пар. через пробел):
' %P %T
'========================================================================
Dim FSO, FoldAct, FoldPas, Fold, objXL
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FoldAct = FSO.GetFolder(WScript.Arguments(0))
Set FoldPas = FSO.GetFolder(WScript.Arguments(1))
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Workbooks.Add
Dim i, j
i = 1
j = 1
objXL.Cells(i,1).Value = FoldAct.Path
objXL.Cells(j,2).Value = FoldPas.Path
For Each Fold in FoldAct.SubFolders
If Not FSO.FolderExists(FoldPas.Path & "\" & Fold.Name) Then
i = i + 1
objXL.Cells(i,1).Value = Fold.Name
Elseif Fold.SubFolders.Count <> _
FSO.GetFolder(FoldPas.Path & "\" & Fold.Name).SubFolders.Count Then
i = i + 1
objXL.Cells(i,1).Value = Fold.Name
j = j + 1
objXL.Cells(j,2).Value = Fold.Name
End If
Next
For Each Fold in FoldPas.SubFolders
If Not FSO.FolderExists(FoldAct.Path & "\" & Fold.Name) Then
j = j + 1
objXL.Cells(j,2).Value = Fold.Name
End If
Next
objXL.Visible = True
Set FSO = Nothing
Set objXL = Nothing
Set Fold = Nothing
Set FoldAct = Nothing
Set FoldPas = Nothing
Wscript.Quit()
|
|
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 17:10 Post subject: |
|
|
Batya
Ты супер мега красавчик!!!
Первый код правда у меня так и не заработал, но это фигня.
Главное работает второй с Excel.
Спасибо тебе большое!!! ОГРОМНОЕ!!! |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 17:22 Post subject: |
|
|
Жаль, что выделение не работает.
А если TCS.Pause еще больше увеличить? Скажем до 200? |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 18:05 Post subject: |
|
|
до 1000 пробывал не получается, ну это даже лучше, Excel всмысле!
А можно чтобы тех подпапок которых меньше они в экселе тоже отображались? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2229 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 27, 2006 18:21 Post subject: |
|
|
visual wrote: | до 1000 пробывал не получается, ну это даже лучше, Excel всмысле!
А можно чтобы тех подпапок которых меньше они в экселе тоже отображались? |
Не понял. Чего "меньше"?
Я думаю, что многое можно, главное - правильно поставить задачу. |
|
Back to top |
|
 |
visual
Joined: 14 Jun 2005 Posts: 42
|
(Separately) Posted: Fri Jan 27, 2006 18:39 Post subject: |
|
|
Всмысле в экселе под названием папки которая с одинаковым названием отобразились названия подпапок. Папки с различными названиями отдельно от папок с одинаковыми названиями но различным кол-вом. |
|
Back to top |
|
 |
|