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
Flasher



PostPosted: Sun Jun 16, 2013 16:03    Post subject: Reply with quote

Для разноразмерных было (отдельно для папок). Для любых папок было (у меня сейчас слегка исправленный вариант). Чисто по именам ещё такой вариант:
Code:
'=====================================================================
' Выделение в панелях одноимённых файлов и/или папок

' Параметры: "%P" "%T" <файлы/каталоги/всё: 1/2/3>
'======================= Путь к утилите TCFS2 ========================
TCFS2 = "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"
'=====================================================================
With WScript.Arguments
  If .Count < 3 Then MsgBox "Укажите все требуемые параметры!", 48,_
  Space(13) & "Выделение элементов в панели" : WScript.Quit
  P = .Item(0) : T = .Item(1) : C = .Item(2)
End With
With CreateObject("Scripting.FileSystemObject")
  Set P = .GetFolder(P) : Set T = .GetFolder(T)
End With
Set D = CreateObject("Scripting.Dictionary")
Set G = CreateObject("Scripting.Dictionary")

Select Case C
  Case 1 ForFolders List
  Case 2 ForFiles List
  Case 3 ForFolders List : ForFiles List
End Select : D.RemoveAll : G.RemoveAll : Set D = Nothing : Set G = Nothing

With CreateObject("InternetExplorer.Application")
  .Navigate("about:blank")
  T = .Document.ParentWindow.ClipboardData.GetData("text")
  .Document.ParentWindow.ClipboardData.SetData "text", Mid(List,1)
  CreateObject("WScript.Shell").Exec TCFS2 & " /ef msg($0B,0) ""tcm(2033) tcm(4002) tcm(2033)" & _
  " tcm(4001), test(L_isActive) | tcm(2033) tcm(4001) tcm(2033) tcm(4002)"" msg($0B,1) redraw()"
  .Document.ParentWindow.ClipboardData.SetData "text", Mid(T,1)
  .ExecWB 45, 2 : .Quit
End With : Wscript.Quit

Sub ForFolders(S)
  Set SFolders = P.SubFolders
  If SFolders.Count Then
    For Each F in SFolders     : D.Add F.Name, "" : Next
    For Each F in T.SubFolders : G.Add F.Name, "" : Next
    For Each F in D.Keys
      If G.Exists(F) Then S = S & vbnewline & F & "\"
    Next
  End If
End Sub

Sub ForFiles(S)
  For Each F in P.Files : D.Add F.Name, "" : Next
  For Each F in T.Files : G.Add F.Name, "" : Next
  For Each F in D.Keys
    If G.Exists(F) Then S = S & vbnewline & F
  Next
End Sub


P.S.: поиск! - поиск! - поиск! Twisted Evil
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group