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 

Single Post  Topic: Можно ли сделать следующее... 
Author Message
Batya



PostPosted: Fri Jan 27, 2006 12:37    Post subject: Reply with quote

visual wrote:
В тотале есть такая функция. Значит и скрипт наверно есть? Confused

Smile Неа. Команды 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.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group