sa
|
Posted: Thu Nov 19, 2009 11:28 Post subject: |
|
|
Для решения поставленной задачи предлагаю скрипт с использованием TCWSHelp:
Code: | ' File: IgnoreTempList.vbs
' Description: Создаёт временный список исключений, состоящий из невыделенных в панели файлов/каталогов.
' Выделенные файлы/каталоги остаются видимыми, а невыделенные исключаются из показа.
' При каждом вызове скрипта происходит переключение между видимой и невидимой частями панели,
' при этом выделенные файлы, (если они имеются), "перемещаются" из одной части в другую.
' Для прекращения действия временного списка следует вызвать скрипт при отсутствии невыделенных
' файлов,(то есть, если выделены все или выделять нечего) или вызвать внутреннюю команду
' "Использовать список исключений файловых имён: вкл/выкл" (cm_SwitchIgnoreList). В противном случае,
' временный список будет действовать до конца сеанса TC.
' При наличии в TC пользовательского (постоянного) списка исключений, его содержимое добавляется
' во временный.
' Parameters: Нет
' Requirements: WSH Helper for TC by Volniy
' Installation: Создайте для скрипта, например, кнопку на панели инструментов TC
' Autor: sa
Option Explicit
Dim WSH, FSO, TCS, IgFile, IgTempFile, IgPath, IgPathExp, IgEnabled, MsgStr, S, S_exp, F1, IgSize, MsgMode
Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
'========== Изменяемые параметры ===============================================
'Режим информационных сообщений: 2 -назойливый, 1 -щадящий, 0 -без сообщений
MsgMode = 2
'===============================================================================
TCS.LockTC True
IgFile = "tcignore.txt"
IgTempFile = "tempignore.txt"
IgPath = "%COMMANDER_PATH%\"
IgPathExp = TCS.TCPath & "\"
IgEnabled = TCS.INIRead (TCS.MainINI, "Configuration", "IgnoreListFileEnabled", 0)
MsgStr = ""
IgSize = 0
S = TCS.INIRead (TCS.MainINI, "Configuration", "IgnoreListFile", 0)
S_exp = WSH.ExpandEnvironmentStrings(S)
If FSO.FileExists(S_exp) Then
IgPath = Left(S, InStrRev(S,"\"))
IgPathExp = Left(S_exp, InStrRev(S_exp,"\"))
IgFile = Right(S,len(S)-len(IgPath))
IgSize = FSO.GetFile(S_exp).size
else
Set F1 = FSO.CreateTextFile(IgPathExp & IgFile, True)
F1.Close
Set F1 = Nothing
end if
TCS.SendCommand (3321) 'cm_ExchangeSelBoth
TCS.SendCommand (530) 'cm_SaveSelection
TCS.SendCommand (480) 'cm_IgnoreConfig
TCS.SendKeystroke "+{TAB 6}{ENTER}010{ENTER}{LEFT}{TAB 4}{ENTER}"
if FSO.GetBaseName(TCS.INIRead (TCS.MainINI, "Configuration", "IgnoreListFile", 0)) = "010" then
FSO.CopyFile IgPathExp & IgFile, IgPathExp & IgTempFile
TCS.INIWrite TCS.MainINI , "Configuration", "IgnoreListFile", IgPath & IgTempFile
TCS.SendCommand (529) 'cm_RestoreSelection
TCS.SendCommand (480) 'cm_IgnoreConfig
TCS.SendKeystroke "+{TAB 5}{ENTER}{TAB 2}{ENTER}"
TCS.INIWrite TCS.MainINI, "Configuration", "IgnoreListFile", IgPath & IgFile
if IgEnabled = 0 then MsgStr = "Задействована функция исключений файловых имён."
if MsgMode = 2 then MsgStr = MsgStr & chr(13) & "Создан и применён временный список исключений."
else
MsgStr = "Невыделенных файлов/каталогов не найдено."
if IgEnabled = 1 then
TCS.SendCommand (2922) 'cm_SwitchIgnoreList
if IgSize > 0 then
TCS.SendCommand (2922) 'cm_SwitchIgnoreList
MsgStr = MsgStr & chr(13) & "Используется постоянный список исключений."
else
MsgStr = MsgStr & chr(13) & "Действие функции исключений файловых имён прекращено."
end if
end if
end if
if MsgMode > 0 and MsgStr <> "" then MsgBox MsgStr, vbSystemModal, "IgnoreTempList.vbs"
TCS.LockTC False
Set WSH = Nothing
Set FSO = Nothing
Set TCS = Nothing
Wscript.Quit
| Его можно повесить на кнопку: Code: | TOTALCMD#BAR#DATA
Диск:\путь\к\файлу\IgnoreTempList.vbs
WCMICONS.DLL,34
Временный список исключений (добавить невыделенные на панели файлы/каталоги к постоянному списку исключений)
-1
| Диск и путь к файлу IgnoreTempList.vbs нужно заменить на свои.
Применение: выделить интересующие каталоги, вызвать скрипт, нажать Ctrl-B. Для возврата нажать Ctrl-B, выделить все каталоги, вызвать скрипт. |
|