Как сделать чтобы фильтр "не старше 1 дня" влиял на папки?
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3, 4, 5, 6, 7, 8  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Как сделать чтобы фильтр "не старше 1 дня" влиял на папки? Author: ViktorTosh PostPosted: Mon Oct 12, 2015 15:35
    —
Подскажите, можно ли как то сделать чтобы при выборе фильтра "не старше 1 дня" (меню Вид) его эффект распространялся бы в том числе и на папки, а не только на файлы?
А то сейчас только файлы отсекает, а папки не трогает.
Может где какая галочка есть в настройках программы?Или плагин какой?
(П.с. в написании скриптов не силен...)

#2:  Author: StaniclawLocation: Ташкент PostPosted: Mon Oct 12, 2015 16:07
    —
Если необязательно через меню, то, может, можно через поиск? Вкладка ''Дополнительно'', там задаются и возраст, и тип: файл или каталог. А если сделать шаблон, то можно и скрипт накропать через команду LOADSEARCH.

Добавлено спустя 11 минут:

Даже скрипт необязателен. С шаблоном можно через то же меню: Вид | Фильтр....

#3:  Author: ViktorTosh PostPosted: Mon Oct 12, 2015 17:15
    —
Staniclaw
Так это я пробовал: через поиск, во вкладке дополнительно задал возраст, сохранил как шаблон.
Но вот когда выбираю его в Вид - Фильтр - то нишиша... папки не реагируют. Тотал 8,52. Если просто в поиске нажать "поиск"то отсеивает папки по возрасту нормально , внутри своего окошка.

#4:  Author: sa PostPosted: Mon Oct 12, 2015 17:20
    —
ViktorTosh wrote:
отсеивает папки по возрасту нормально , внутри своего окошка.

Вариант нажать в этом окошке кнопку "Файлы на панель" не подходит?

#5:  Author: StaniclawLocation: Ташкент PostPosted: Mon Oct 12, 2015 17:28
    —
ViktorTosh
Слушайте, а это обязательно -- фильтрование? Сделайте раскраску файлов по этому шаблону. Раскраска затрагивает и каталоги.

Добавлено спустя 7 минут:

А если всё-таки необходима фильтрация, то можно через Num+ | <шаблон> | Ctrl+S. Каталоги выделяются вместе с файлами. И вместе же --фильтруются.

#6:  Author: ViktorTosh PostPosted: Mon Oct 12, 2015 17:44
    —
Staniclaw
Раскраску я давно сделал.
Про Num+ | <фильтр> | Ctrl+S. даже не понял что это и если это теоретически нельзя оформить в виде кнопки, то можно и не рссказывать)
Фильтрование то не обязательно, но удобно, это я в xyplorer насмотрелся.
Там есть "силовые фильтры" они так их обозвали. Кнопочку нажал и остались только файлы и папки удовлетворяющие фильтру. Кнопочку отжал - опять все показвает. Удобно.
Просто в том xyplorer - е выделение мне не нравиться и другое там мне тоже кое что не нравиться.

#7:  Author: StaniclawLocation: Ташкент PostPosted: Mon Oct 12, 2015 18:01
    —
ViktorTosh wrote:
Про Num+ | <фильтр> | Ctrl+S. даже не понял что это и если это теоретически нельзя оформить в виде кнопки, то можно и не рссказывать).
Я имел в виду: нажимаешь плюс на цифровом блоке клавиатуры, в появившемся окне выбираешь шаблон поиска, нажимаешь OK. Файлов и папки, подпадающие под него, выделяются. Нажимаешь Ctrl+S, и в панели показываются только выделенные объекты.

Теоретически из этого можно сделать скрипт, который можно подвесить на кнопку.

#8:  Author: FlasherLocation: Москва PostPosted: Mon Oct 12, 2015 18:14
    —
Staniclaw wrote:
Нажимаешь Ctrl+S, и в панели показываются только выделенные объекты.
Ну, да? Вот прям так взяли и показались? Wink

Тут иная ситуация. Скрипт фильтрует все элементы по диапазону, заносит в буфер, выполняет 2033, 2023 и 524. Можно с Хелпером, можно с TCFS2, как угодно.

Если без заморочек со скриптом, то
Code:
TCFS2.exe /ef "msg($0B,0) tcm(3311,1) send(@`>не старше 1 дня`,0) send({VK_13},0) delay(300) if(wait_for(findwnd(`TMyListBox`),2),tcm(2023)+msg($0B,1)+tcm(524))"
Без delay, увы, не срабатывает.. Возможно, это связано с небыстрым выделением после диалога, хотя на взгляд так не кажется.

#9:  Author: Mailk PostPosted: Tue Oct 13, 2015 12:47
    —
Если бы у тебя была схема цветная на время файлов и папки то особо и не нужно с этим заморачиватся. при сортировки сразу видны папки не старше например 1часа,1 дня, 3 дней. У меня они разного цвета и лехко выделять.

#10:  Author: StaniclawLocation: Ташкент PostPosted: Tue Oct 13, 2015 13:17
    —
Mailk
ViktorTosh wrote:
Раскраску я давно сделал.

#11:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Oct 13, 2015 13:21
    —
Staniclaw
Не стоило с ним дискутировать вообще.

Mailk
Не надо лезть с советами (тем более, безграмотными), не разобравшись, что на самом деле обсуждается.

#12:  Author: FlasherLocation: Москва PostPosted: Tue Oct 13, 2015 20:51
    —
Сбацал скрипт. Если не лень, проверьте кто-нибудь.

Code:
'•••••••••••••••••••••••••••••••••••••• VBS ••••••••••••••••••••••••••••••••••••••
' Назначение:  Фильтрация в активной панели файлов и/или папок по заданной разнице
'              единиц измерения времени их дат с текущей датой и временем

'    Условия:  путь запуска - пустой
'              необходим компонент Script Helper ActiveX for TC

' Параметры: <тип элементов> <тип даты> <единица времени> <знак сравнения> <число>

' Тип элементов принимает следующие значения:
'    1   -   только папки
'    2   -   только файлы
'    3   -   папки и файлы

' Тип даты принимает следующие значения:
'    1   -   дата создания
'    2   -   дата модификации

' Единица (измерения) времени принимает следующие значения:
'    s   -   секунда
'    n   -   минута
'    h   -   час
'    d   -   сутки/день
'   ww   -   неделя
'    m   -   месяц
'    q   -   квартал
' yyyy   -   год

' Знак сравнения принимает следующие значения:  =  |  <>  |  <  |  <=  |  >=  |  >

' Примеры параметров:  3 1 n <= 5  |  2 2 d < 2

' Автор: Flasher ©
'••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

Option Explicit : Dim Etype, DType, UTime, Compr, Count, DNow, FSO, Dir, F, D, S, T
With WScript.Arguments
  If .Count <> 5 Then MsgBox "Должно быть указано 5 параметров!",_
  vbExclamation, Space(17) & "Фильтрация по дате" : WSCript.Quit
  EType = .Item(0) : DType = .Item(1) : UTime = .Item(2)
  Compr = .Item(3) : Count = .Item(4)
End With : DNow = Now
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Dir = FSO.GetFolder(CreateObject("Wscript.Shell").CurrentDirectory)

If EType <> 2 Then
  For Each F in Dir.SubFolders
    If Test(F) Then S = S & F & "\" & vbNewLine
  Next
End If
If EType > 1 Then
  For Each F in Dir.Files
    If Test(F) Then S = S & F & vbNewLine
  Next
End If
If Not IsEmpty(S) Then
  With CreateObject("TCScript.Helper")
    .Pause = 0 : .Wait = True : .LockTC True : T = .GetTextFromClip
    .SetTextToClip(S) : .SendCommand 2033, True : .SendCommand 2023, True
    .SendCommand 524, True : .LockTC False : .SetTextToClip(T)
  End With
End If

Function Test(Item)
  If DType = 1 Then D = Item.DateCreated Else D = Item.DateLastModified
  Test = Eval(DateDiff(UTime, 0, DNow - D) & Compr & Count)
End Function


Last edited by Flasher on Tue Oct 13, 2015 23:24; edited 1 time in total

#13:  Author: StaniclawLocation: Ташкент PostPosted: Tue Oct 13, 2015 23:05
    —
Flasher
Ошибка в описании:
Flasher wrote:
' Параметры: <тип элементов> <тип даты> <единица врамени> <знак сравнения> <число>

#14:  Author: FlasherLocation: Москва PostPosted: Tue Oct 13, 2015 23:24
    —
Staniclaw
Исправил. Но с такой ерундой лучше в ЛС.

#15:  Author: sa PostPosted: Wed Oct 14, 2015 10:03
    —
Мне больше нравится идея Staniclaw с фильтром посредством выделения (cm_SelectBoth – 3311) по шаблону не старше 1 дня и показом только выделенного (cm_ShowOnlySelected - 2023). Возможно, для большей наглядности, имеет смысл дополнительно включить вначале обычную фильтрацию (cm_SrcUserDef - 314), которая влияет только на файлы. Кнопка c TCFS2:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "run_item(locktc,1) tcm(524) tcm(314,1) eval(send_wait(@`>не старше 1 дня`, findwnd(`TCOMBOINPUT`))) send(`{ENTER}`, findwnd(`TCOMBOINPUT`)) delay(200) tcm(3311,1) eval(send_wait(@`>не старше 1 дня`, findwnd(`TCOMBOINPUT`))) send(`{ENTER}`, findwnd(`TCOMBOINPUT`)) delay(200) tcm(2023) tcm(524) run_item(locktc,0) redraw"
WCMICONS.DLL,24
Фильтр для файлов/папок не старше 1 дня


-1


Last edited by sa on Wed Oct 21, 2015 23:17; edited 1 time in total



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3, 4, 5, 6, 7, 8  Next  :| |:
Page 1 of 8

Powered by phpBB © 2001, 2005 phpBB Group