Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Скрытие в списке исключений выбранных файлов и папок

Q: Можно ли сделать, чтобы выделенные в любой из панелей файлы добавлялись в список исключений?
A: VBS-скрипт (см. параметры в шапке):
'================================================================================
' Добавление имён выбранных элементов в список исключений TC с активацией фильтра

' Параметры: %WL "<путь к файлу-списку>"
' Пример:    %WL "%%COMMANDER_PATH%%\tcignore.txt"

' Автор: Flasher ©
'============================ Путь к утилите TCFS2 ==============================
TCFS2 = """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"""
'================================================================================
If WScript.Arguments.Count = 0 Then WScript.Quit
Dim WSH : Set WSH = CreateObject("WScript.Shell")
IL  = WSH.ExpandEnvironmentStrings(WScript.Arguments(1))
NL  = vbNewLine : Title = "Добавление имён в список исключений"
Msg = MsgBox("Добавлять полные пути" & NL & "к именам выбранных элементов?",_
4163, Title) : If Msg < 6 Then WScript.Quit
With CreateObject("Scripting.FileSystemObject")
  All = .OpenTextFile(WScript.Arguments(0),,,-1).ReadAll
  If  Msg = 7 Then
    For Each F in Split(All, NL) : S = S & NL & .GetFileName(F) : Next
    All = Mid(S, 3)
  End If
  If .FileExists(IL) Then
    M = 2 : Size = .GetFile(IL).Size : If Size = 0 Then NL = ""
  Else M = 1 : NL = "" : End If
End With
With CreateObject("ADODB.Stream")
  .Open : Enc = "windows-1251"
  If M = 2 And Size Then
    .LoadFromFile IL
    If Size > 3 Then
      .Type = 1
      For s = 2 To 4
        .Position = 0 : .Read(s) : Str = Str & Hex(AscB(.Read(2)))
      Next : If Str = "EFBBBF" Then Enc = "UTF-8" : T = 1
      .Close : .Type = 2 : .Open : .CharSet = Enc : .LoadFromFile IL
    End If : Do : .SkipLine : Loop Until .EOS : Ps = .Position
    For s = 1 To 100
      Str = .ReadText  : .Position = Ps - Len(Str) - 1
      F = Left(Str, 1) : If .Position = 0 Then NL = "" : Exit For
      If F <> "" And F <> vbLf And F <> vbCr Then .Position = .Position + 2 : Exit For
    Next
  Else .CharSet = Enc
  End If : .WriteText NL & All
  If Not T Then
  .Position = 0 : All = .ReadText : .Close : .Open : .CharSet = "UTF-8" : .WriteText All
  End If : .SaveToFile IL, M : .Close
End With : WSH.Run TCFS2 & " /ef ""if(tcini(Configuration, "&_
"IgnoreListFileEnabled, #), tcm(2922)+tcm(2922), tcm(2922))"""

Файл-список перезаписывается в формате UTF-8. Если он не существует, то будет создан.

Flasher
30.03.2015