'=====================================================================
' Выделение в панелях одноимённых файлов и/или папок
' Параметры: "%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 |