Шаблон для отбора папок

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher писал(а):Понял. Довольно долго.
Можно написать скрипт, который просто будет “впечатывать” нужную маску, а не выискивать её, тем более, что она, возможно, уже вытолкнута из списка всего в 20 строк.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Жаль, встроенная команда cd не позволяет включать фильтр для папок - можно было бы кнопку создать. Например, кнопка с cd *.bak включает фильтр для *.bak, а если cd *48*\, то видимо тотал уже пытается войти в папку...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa
Такой скрипт, да ещё и с выполнением выделения, сделать - три минуты, но мы же говорим о фильтре по искомой букве при самостоятельном вводе, на большой список скриптов не напосёшься.

MVV
Как минимум три хотелки мы уже сформировали. Запостить бы их ещё на офф. :wink:
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher писал(а):на большой список скриптов не напосёшься.
Можно использовать один скрипт (требуется Helper от Volniy), а фильтр передавать параметром:

Код: Выделить всё

'================================================================================
'  File:         Показ по фильтру.vbs
'  Description:  Показ файлов/каталогов по фильтру (Ctrl+F12)
'              Работает при английской раскладке клавиатуры, либо нужны
'              манипуляции с назначением клавиш для переключения на
'              английский в региональных стандартах (см. комментарии)
'  Parameters:   Параметр: фильтр показа, в том числе с использованием масок
'              (если с пробелами, то в кавычках). Пример: "*.doc;Мои рисунки"
'  Requirements: WSH Helper for TC by Volniy
'  Installation: Создайте для скрипта, например, кнопку на панели инструментов TC
'  Autor:        sa
'================================================================================
Option Explicit
If WScript.Arguments.Count < 1 Then
  MsgBox "Не задан параметр: фильтр показа!", _
    vbOKOnly + vbCritical, _
    "Показ по фильтру.vbs"
  WScript.Quit
End If
Dim TCS, S
Set TCS = CreateObject("TCScript.Helper")
S =  WScript.Arguments(0)
If InStr(1, S, " ", 1) > 0 Then
  S = chr(34) & S & chr(34)
  S = Replace (S, ";", chr(34) & ";" & chr(34),1,-1,1)
  S = Replace (S, "|", chr(34) & "|" & chr(34),1,-1,1)
End If
With TCS
  .SendCommand 314 'cm_SrcUserDef
'  .SendKeystroke "^+1"
' Раскомментировать предыдущую строку, если переключение на английский язык
'настроить в региональных стандартах на Ctrl+Shift+1. Иначе следующая команда
'SendKeystroke не будет правильно выполняться при русской раскладке клавиатуры
  .SendKeystroke S
  .SendKeystroke "{Enter}"
'  .SendKeystroke "^+2"
' Раскомментировать предыдущую строку, если переключение на русский язык
'настроено на Ctrl+Shift+2 и есть желание переключиться с английского на
'русский перед выходом из скрипта
End With
Set TCS = Nothing
Wscript.Quit
Кнопка:

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\VBS\Показ по фильтру.vbs
"*.doc;Мои рисунки"
wcmicons.dll,25
Показ по фильтру

0
-1
Upd
Удалил строку для входа в историю (Alt+Down).
Последний раз редактировалось sa Ср дек 22, 2010 12:52, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Flasher писал(а):на большой список скриптов не напосёшься
Тут стоило откорректировать: не скриптов(файлов) как таковых, а кнопок/команд/клавиш.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

В варианте со скриптом, если создать кнопку с выпадающим меню требуемого размера, то вызов нужного фильтра делается на раз-два. В тоже время, при использовании команды cm_SrcUserDef (Ctrl+F12) требуется 4 действия. И даже для вызова шаблона (который пока невозможно создать для рассматриваемой задачи) потребовалось бы как минимум 3, а то и те же 4 действия. Так что для тех, кому эта задача актуальна, по-моему, овчинка выделки стоит.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Удалил из скрипта строку для входа в список истории (Alt+Down): от неё больше вреда, чем пользы.
При наличии указанной строки (она располагалась перед .SendKeystroke "^+1") скрипт верно срабатывал в случае, если была нажата клавиша NumLock, а в противном случае вместо входа в список истории происходило стирание первого символа фильтра.
Ответить