'=====================================================================
' Выделение в панелях одноимённых файлов и/или папок
' Параметры: "%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 : Set FSO = CreateObject("Scripting.FileSystemObject")
Select Case C : Case 1 Tp = 192 : Case 2 Tp = 160 : Case 3 Tp = 224 : End Select
Set Dict = CreateObject("Scripting.Dictionary")
Set SHA = CreateObject("Shell.Application")
Set Items = SHA.NameSpace(P).Items : Items.Filter Tp, "*"
For Each F in Items : Dict.Add CStr(F), "" : Next
Set Items = SHA.NameSpace(T).Items : Items.Filter Tp, "*"
For Each F in Items
If Dict.Exists(CStr(F)) Then
If Tp <> 192 And F.IsFolder Then F = F & "\"
List = List & vbNewLine & F
End If
Next
If List <> "" Then
With CreateObject("WScript.Shell")
TempFile = CreateObject("Shell.Application")._
NameSpace(.ExpandEnvironmentStrings("%TEMP%")).Self.Path & "\" & FSO.GetTempName
FSO.OpenTextFile(TempFile, 2, True, -1).Write List
.Run "%comspec% /c clip < """ & TempFile & """",0,True
.Run TCFS2 & " /ef msg($0B,0) tcm(2033,0) send({TAB})"&_
" tcm(2033,0) send({TAB}) msg($0B,1) redraw()",,True
.Run "%comspec% /c type|clip",0
End With : FSO.DeleteFile TempFile, 1
End If |