Как сделать чтобы фильтр "не старше 1 дня" влиял на папки?
Select messages from
# through # FAQ
[/[Print]\]

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

#16:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 13:57
    —
sa wrote:
Мне больше нравится идея ... посредством выделения (cm_SelectBoth – 3311) по шаблону
А мне нет. Пауза в моём случае не годится. А как там у других вообще неясно. Поэтому шаблон отпал. Плюс к этому в моём скрипте есть не только "не старше", но и "не младше", а также "менее", "более" и "совпадает", есть два типа даты, выбор того, что фильтровать. Настраивать кнопки гораздо удобней, плодить шаблоны не требуется, кнопки выходят куда компактнее. Ну и самое главное - никаких мельканий. Cool

#17:  Author: sa PostPosted: Wed Oct 14, 2015 16:53
    —
Flasher wrote:
есть не только "не старше", но и
Даже "между" нет? И учёта атрибутов и/или размеров файлов?

Flasher wrote:
мельканий
Особо чувствительные к мельканиям могут сократить их вдвое за счёт создания пользовательской команды em_cd (с командой cd и параметром %A%Z) для вызова шаблона вместо применённой в кнопке внутренней команды 314. Вызов её будет таким:
Code:
tem(`em_cd >не старше 1 дня`)
вместо
Code:
tcm(314,1) eval(send_wait(`~(>не старше 1 дня){ENTER}`, findwnd(`TCOMBOINPUT`)))


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

#18:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 17:02
    —
sa wrote:
Даже "между" нет? И учёта атрибутов и/или размеров файлов?
Про "между" не думал. Можно добавить, в принципе. А вот атрибуты и размеры - это совсем про другое, тут их нет смысла добавлять. Ты ещё поиск дубликатов и инфоплагины назови. Very Happy
sa wrote:
Особо чувствительные к мельканиям могут сократить их вдвое
Ой, оно там у тебя ещё и двойное.

#19:  Author: sa PostPosted: Wed Oct 14, 2015 17:30
    —
Flasher wrote:
инфоплагины назови
Лень было всё перечислять.
Flasher wrote:
это совсем про другое
А вот при выделении по шаблону, а не через буфер обмена, проблем с совсем другим не возникнет.

#20:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 17:33
    —
sa wrote:
А вот при выделении по шаблону, а не через буфер обмена, проблем с совсем другим не возникнет.
С чем - с другим? Главное, что скрипт отрабатывает без сбоев.

#21:  Author: sa PostPosted: Wed Oct 14, 2015 17:46
    —
Flasher wrote:
А вот атрибуты и размеры - это совсем про другое
Flasher wrote:
С чем - с другим?

С атрибутами, например или полями инфоплагинов, бесчисленное множество которых ты же не засунешь в свой скрипт.

#22:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 18:00
    —
Так я как раз против этого. Разговор не про все шаблоны, а те, которые касаются общего фильтра по дате модицикации. Не сомневаюсь, что комбинации с плагинами и атрибутами в таких подсветках или фильтрах - это редчайшие в плане реального применения случаи.

#23:  Author: sa PostPosted: Wed Oct 14, 2015 18:05
    —
Flasher wrote:
Разговор не про все шаблоны,

Я про то же: с твоим скриптом не про все, а с выделением по шаблону и показом выделенного – про все.

#24:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 18:19
    —
Совсем не про то же (общий фильтр). Мой скрипт у меня хотя бы работает. А твоя кнопка - нет.
Об остальном я уже высказался. Заявленная тема решена мной в расширенных рамках без необходимости тратить время на манипуляции с созданием шаблонов. Нужды подвязывать другие опции, как уже объяснено, не было и нет.
А что касается "между", то в целях соответствия уж точно если и добавлять, то не между датами, как в ТС, а между числами.

 С учётом несущественного влияния на скорость выкладываю отдельно.
Плюс сюда добавил нераздражающее всплывающее окошко под курсором в случае отсутствия фильтрации.

Last edited by Flasher on Sun Oct 25, 2015 14:56; edited 9 times in total

#25:  Author: sa PostPosted: Wed Oct 14, 2015 19:40
    —
Flasher wrote:
А твоя кнопка - нет.

Спасибо за тестирование.Smile Остаётся предложить заинтересованным воспользоваться твоим кодом для TCFS2, благо основная идея в обоих вариантах одинаковая - выделение по шаблону.

#26:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 19:43
    —
sa wrote:
Спасибо за тестирование.
Smile Своевременно.>>
Flasher wrote:
Пауза в моём случае не годится.

#27:  Author: sa PostPosted: Wed Oct 14, 2015 20:01
    —
Flasher wrote:
Своевременно

Я полагал, что это ты о своей команде (для TCFS2) тогда писал: она у меня обрабатывает панель почему-то за несколько секунд. А что за пауза в моей кнопке? Я так понял, она же совсем не пашет у тебя.

#28:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 20:07
    —
sa wrote:
она у меня отрабатывает почему-то секунд за 5
Странно. У меня сразу.
sa wrote:
А что за пауза в моей кнопке?
Задержка delay(200).

#29:  Author: sa PostPosted: Wed Oct 14, 2015 20:14
    —
Flasher wrote:
работает. А твоя кнопка - нет.

Тогда это о чём, о паузе в 200*2 миллисекунд для завершения диалога и фильтрации (выделения)?

#30:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 20:16
    —
Есть такая вероятность.

#31:  Author: sa PostPosted: Wed Oct 14, 2015 20:31
    —
В итоге, моя кнопка у тебя всё-таки работает, пусть и не так быстро, как того тебе хотелось бы, или не работает вовсе?

#32:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 21:25
    —
Я уже написал по существу вопроса. Меня не устраивают обе кнопки, даже если они начнут стабильно работать только у меня. Больше добавить нечего.
sa wrote:
пусть и не так быстро, как того тебе хотелось бы
Разве я писал о скорости в отношении твоей кнопки? Домыслы в сторону.

#33:  Author: sa PostPosted: Wed Oct 14, 2015 21:56
    —
Flasher wrote:
Я уже написал по существу вопроса.
После твоих ответов по существу:
1. Пауза в моём случае не годится.
2. работает. А твоя кнопка - нет.
3. если они начнут стабильно работать
я так и не понял, что у тебя творится с моей кнопкой.

P.S. По поводу паузы в 5 секунд в твоей. В TCFS2.ini проверь на всякий случай, совпадает ли функция wait_for с оригинальной из дистрибутива TCFS2.

#34:  Author: FlasherLocation: Москва PostPosted: Wed Oct 14, 2015 22:18
    —
Точно, у меня там 10 вместо 1000.

#35:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Oct 15, 2015 09:40
    —
sa
У меня, кстати, тоже кнопка не заработала. (Сейчас пишу с работы, а проверял на домашнем ПК.) Последовательное выполнение вручную исходных команд (при наличии заранее созданного шаблона поиска по "не старше"), да, даёт нужный результат, а запуск кнопки — нет. Проверялось на тестовом каталоге, куда входили в том числе один файл и один каталог, созданные только что и заведомо подпадающие под действие шаблона. При попытке применить кнопку скрывалось всё, кроме выделенного первого по порядку подкаталога, не имевшего к условию шаблона никакого отношения. Где-то что-то не успевает отработать?
Скрипт от Flasher ещё не проверял— пока не было времени.

И, думаю, эту тему по итогам обсуждения можно уже перенести в "Автоматизацию".

#36:  Author: FlasherLocation: Москва PostPosted: Fri Oct 16, 2015 18:02
    —
Avada wrote:
Скрипт от Flasher ещё не проверял— пока не было времени.
Как появится - свисти.

#37:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 17, 2015 09:50
    —
Flasher
Проверил оба варианта скрипта на нескольких наборах параметров, всё нормально.
Для добавочных параметров в шапке второго скрипта хорошо бы дать чёткое пояснение по их предназначению.

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

sa
Кнопка работает тоже после разбора полётов в ЛС. До меня сразу не дошло, что следовало указать в кнопке свой реальный шаблон, удовлетворяющий условию фильтрации. Предыдущие претензии сняты.

Общее резюме будет такое. Скрипт, конечно, удобно настраивать, работает он вообще без мельканий , и единственный недостаток тут — отсутствие индикатора фильтрации в заголовке панели. Впрочем, я понимаю, что отвязаться от шаблонов — концепция автора. (Да, и дизайн окошка с сообщением об отсутствии соответствий фильтру лично я предпочёл бы несколько другой. Это, впрочем, можно обсудить в ЛС.)
Кнопка даёт нормальную индикацию, но должна быть привязана к реальному шаблону, даёт меньше вариантов применения, сложнее правится, при её работе заметно дёрганье панели (впрочем, терпимое).
Так что есть возможность выбора.

#38:  Author: sa PostPosted: Sat Oct 17, 2015 12:46
    —
Avada wrote:
Кнопка ... должна быть привязана к реальному шаблону
Это тоже концепция.

Нет смысла сравнивать в целом предложенные скрипт и кнопку. Они для разного. Что касается конкретной задачи (показ не старше 1 дня), то я не уверен, что скрипт в его нынешнем виде будет правильно работать в архивах, результатах поиска, виде без подкаталогов...

#39:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 12:59
    —
Avada
Спасибо за отчёт.
По добавочным. Их суть не отличается от предыдущих двух, т.е. эта второй вариант, даже если их записать такими же, всё сработает. Конечно, логично их использовать в рамках дапазона, но есть и другие варианты, например, два равенства. Основная проблема - это придумать компактную запись, чтобы всё это описать.
Касаемо индикатора фильтрации в заголовке. Если использовать быстрый фильтр, то там тоже нет никакой индикации после скрытия поля ввода. Поэтому тут я бы не стал данное событие к минусам относить. Тут достаточно просто помнить. А вот реальный минус - это полный сброс фильтра при сменах окон. В кнопке он частичный (каснётся только папок). Впрочем, тут есть и плюс. Выделение отфильтрованных элементов всегда можно вернуть по "/" либо Esc из TwinKey.

По дизайну окошка (надпись, шрифт, цвета, размер) при желании пиши в ЛС. Меня лично устраивает.

sa wrote:
я не уверен, что скрипт в его нынешнем виде будет правильно работать в архивах, результатах поиска, виде без подкаталогов...
В архивах и результатах поиска нет смысла его вообще применять. Да и для режима без подкаталогов особого смысла тоже нет, т. к. там нет папок. Для одних файлов достаточно cd ><шаблон>.

#40:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 17, 2015 13:46
    —
sa wrote:
Нет смысла сравнивать в целом предложенные скрипт и кнопку. Они для разного.

Понимаю, поэтому моё сравнение достаточно условно. Во всяком случае, я не утверждаю, что один из вариантов может полностью заменить другой. Пока у меня на фильтрационном тулбаре мирно уживаются кнопки разного происхождения...

Flasher
И всё-таки надо придумать описание, как использовать добавочные. Хотя бы только про диапазон. Пока действительно это сложно понять.
Что касаемо индикации, от при быстрой фильтрации она как раз есть (по крайней мере в строке состояния виден сам факт работы фильтра). Вот если бы и тут какой-то специальный значок можно было примерно там же показать... Про сброс, да, согласен.
А по дизайну окошка обменяемся попозже мнениями в ЛС.

#41:  Author: sa PostPosted: Sat Oct 17, 2015 13:55
    —
Flasher wrote:
Для одних файлов достаточно cd ><шаблон>.

Это не по концепции! Smile

#42:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 17, 2015 13:58
    —
sa
А там будет уже другая концепция. Smile

#43:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 14:27
    —
Avada wrote:
И всё-таки надо придумать описание, как использовать добавочные.
В ЛС отписал.

Avada wrote:
по крайней мере в строке состояния виден сам факт работы фильтра
Боишься забыть, отвлёкшись на чашечку кофе? Wink Я в интерфейс ТС, увы, воткнуть ничего не смогу (по крайней мере с vbs без шаманств с Camper и т.п.), поэтому не знаю что и предложить.

#44:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 17, 2015 14:31
    —
Flasher
Причин для того, чтобы отвлечься и забыть, может быть сколько угодно. Особенно на многопользовательской машине. Впрочем, раз нельзя — стало быть, нельзя, что ж тут поделаешь?
По остальному пока всё будет (несколько позже) в ЛС.

#45:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 14:37
    —
Avada
Даже если и выдумать какой-то индикатор (например, фейковый фильтр), то в любом случае сброс такого фильтра никак не будет соотносится со сбросом реального. То же самое касается кнопки с TCFS2. Ты случайно сбросишь папки, а файлы останутся отфильрованными с индикацией. Тут ещё проще, отвлёкшись, забыть, что фильтрация папок уже тю-тю.

#46:  Author: sa PostPosted: Sat Oct 17, 2015 15:55
    —
Flasher wrote:
В архивах и результатах поиска нет смысла его вообще применять.
Будет полезней, если не здесь, а в шапке скрипта об этом упомянуть.
Flasher wrote:
Да и для режима без подкаталогов особого смысла тоже нет, т. к. там нет папок.
Тогда и в параметре <тип элементов>: 2 - только файлы особого смысла нет?

#47:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 16:39
    —
sa wrote:
Будет полезней, если не здесь, а в шапке скрипта об этом упомянуть.
Упомянуть, что раз пользуешься поиском, зачем ещё и фильтр использовать, если все опции и так доступны в диалоге? Laughing

sa wrote:
Тогда и в параметре <тип элементов>: 2 - только файлы особого смысла нет?
Наличие параметра на работе никак не отражается. Ну, и сама правка, как уже трижды отмечено, кнопки со скриптом быстрее и проще.

Last edited by Flasher on Sat Oct 17, 2015 20:33; edited 1 time in total

#48:  Author: sa PostPosted: Sat Oct 17, 2015 16:42
    —
Flasher wrote:
на работе никак не отражается.

И на не работе тоже (в режиме без подкаталогов).

#49:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 16:46
    —
Отражаться может только на работе, а не наоборот.

#50:  Author: sa PostPosted: Sat Oct 17, 2015 16:50
    —
Flasher
Параметр только для файлов есть, а не работает (в режиме без подкаталогов).

#51:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 17, 2015 17:24
    —
sa
ИМХО, совершенно очевидно, что набор параметров универсален. Если в каком-то режиме что-то не нужно, это не значит, что оно не нужно вообще.

#52:  Author: sa PostPosted: Sat Oct 17, 2015 19:55
    —
Avada wrote:
набор параметров универсален.

Согласен. Я тоже к этому клонил, только лишь изначально хотел обозначить режимы активной панели, в которых скрипт не стоит использовать, дабы не случилось какое-нибудь тю-тю.

#53:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 20:30
    —
sa wrote:
Параметр только для файлов есть, а не работает (в режиме без подкаталогов).
Так почитают и поверят, что только для файлов и не работает, не заглянув, что в скобках ключевая фраза. Very Happy

#54:  Author: sa PostPosted: Sat Oct 17, 2015 20:37
    —
У меня хороший учитель. Он вообще без ключевых фраз обходится:
Flasher wrote:
работает. А твоя кнопка - нет.

#55:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 20:44
    —
Учитель-то хороший, а вот ученик...

#56:  Author: sa PostPosted: Sat Oct 17, 2015 21:34
    —
Flasher wrote:
раз пользуешься поиском, зачем ещё и фильтр использовать, если все опции и так доступны в диалоге?
Так уж зачем и так уж и все?
Flasher wrote:
Плюс к этому в моём скрипте есть не только "не старше", но и "не младше", а также "менее", "более" и "совпадает", есть два типа даты, выбор того, что фильтровать. Настраивать кнопки гораздо удобней, плодить шаблоны не требуется

#57:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 17, 2015 22:28
    —
sa
И каких опций там нет?

#58:  Author: sa PostPosted: Sat Oct 17, 2015 22:44
    —
Avada
Наверное, будет лучше, если сам Flasher и ответит.

#59:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 22:45
    —
sa
В цитате сравнивались не все возможные функции диалога поиска, а лишь конкретной секции на вкладке "Дополнительно". Разве это было не очевидно?


Last edited by Flasher on Sat Oct 17, 2015 22:55; edited 1 time in total

#60:  Author: sa PostPosted: Sat Oct 17, 2015 22:55
    —
Flasher wrote:
Разве это было не очевидно?

Мне было очевидно, а пользователю у которого нет некоторых специальных плагинов, вряд ли.

#61:  Author: FlasherLocation: Москва PostPosted: Sat Oct 17, 2015 23:00
    —
Исходя из этого, я и не подозреваю на что тут отвечать. >>>
sa wrote:
Так уж зачем и так уж и все?

#62:  Author: sa PostPosted: Sat Oct 17, 2015 23:08
    —
Flasher
Отвечать предлагалось на вопрос от Avada.

Кстати, хороший ход: описывая возможности (плюсы) скрипта, сравнивать их с возможностями одной из секций на одной из вкладок диалога поиска.

#63:  Author: FlasherLocation: Москва PostPosted: Sun Oct 18, 2015 00:20
    —
sa
Вопрос Avada последовал после этого, отвечают обычно с начала, а не с конца.

А ход с учётом сабжа вполне очевидный.

#64:  Author: sa PostPosted: Sun Oct 18, 2015 00:30
    —
Avada wrote:
И каких опций там нет?

Хорошо, попробую сам: не младше 1 дня разве имеется?

#65:  Author: FlasherLocation: Москва PostPosted: Sun Oct 18, 2015 00:34
    —
Конечно. См. плагин age.

#66:  Author: sa PostPosted: Sun Oct 18, 2015 00:37
    —
Flasher
Насколько мне известно, в стандартной поставке TC имеется только один встроенный плагин - tc.

#67:  Author: FlasherLocation: Москва PostPosted: Sun Oct 18, 2015 00:37
    —
sa
Время создания/модификации в нём тоже есть, если что.
Момент стандартной поставки никто и не обговаривал.

#68:  Author: sa PostPosted: Sun Oct 18, 2015 00:41
    —
Flasher
Был разговор вообще-то:
Quote:
Мне было очевидно, а пользователю у которого нет некоторых специальных плагинов, вряд ли.

Получается, при вызове поиска надо забыть о всех своих наработанных, отлаженных кнопках фильтрации (из скрипта), а пытаться сделать то же самое, но силами самого TC и всевозможных плагинов.


Last edited by sa on Sun Oct 18, 2015 00:57; edited 1 time in total

#69:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Oct 18, 2015 00:48
    —
sa
Flasher
А вам не кажется, что уже две страницы темы в основном заполнены, мягко говоря, не очень обязательными и не особо интересными другим участникам форума сообщениями? Я бы предложил в этом направлении дальше не продолжать.

#70:  Author: FlasherLocation: Москва PostPosted: Sun Oct 18, 2015 00:55
    —
Avada
Кажется, можешь с лёгкой душой удалить их.

#71:  Author: sa PostPosted: Mon Oct 19, 2015 10:17
    —
Вариантом без сброса фильтра мог бы стать поиск по шаблону с последующим выводом результатов на панель, но что-то автор темы никак не отреагировал на такой способ.

#72:  Author: FlasherLocation: Москва PostPosted: Tue Oct 20, 2015 22:14
    —
Update: В данном скрипте исправлены мелкие недочёты (в т.ч. описание в шапке), цвета всплывающего окошка приведены к текущей схеме ТС.
Если кто-то хочет поменять шрифт, то см. в коде Verdana,10 (шрифт,размер).

#73:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Oct 21, 2015 10:40
    —
sa
Прошу проверить работу кнопки с TCFS на XP — там, в отличие от Win7, творится что-то абсолютно неописуемое. Если не удастся воспроизвести, лучше продолжить обсуждение в ЛС, я сделаю видео.

#74:  Author: sa PostPosted: Wed Oct 21, 2015 11:05
    —
Avada
У меня работает (на XP её и делал). Чтобы проще было описать происходящее, лучше убрать запрет перерисовки окна ТК (это run_item(locktc,1) в начале строки параметров) и увеличить обе задержки с 200 до 2000, например, чтобы успеть что-то разглядеть.

#75:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Oct 21, 2015 11:12
    —
sa
Там идёт слишком много непонятных действий подряд, чтобы пытаться это адекватно описать словами. Ссылку на видео (с исходным вариантом кнопки) дал в ЛС, есть предложение там и обсудить. Задержку менять на 2000 уже пробовал, не помогло. Временное отключение (на всякий случай) TWinKey и Autorun также не помогло.
Удаление run_item(locktc,1) привело к тому, что не перестало отображаться промежуточное окно фильтрации с неправильно записанным шаблоном. Шаблон выбирается правильный, но далее зачем-то выполняется переход из нужного каталога на уровень выше и вывод сообщения "Файлы не найдены" (правильно, уровнем выше их нет).

#76:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Oct 21, 2015 19:54
    —
sa
После выявления в ЛС непосредственной причины проблемы (конфликта с Punto Switcher) по итогам проверки обновлённой кнопки (как в XP, так и в Win7) пока больше никаких замечаний не имею.
Flasher
На Win7, в отличие от XP, некоторые проблемы есть. См. ЛС.

#77:  Author: sa PostPosted: Wed Oct 21, 2015 23:31
    —
Avada
Спасибо!
Обновил кнопку в теме, чтобы избежать возможного конфликта Punto Switcher и TCFS2, а именно заменил в функции send_wait режим передачи "~" на режим "@".

Править кнопки будет проще, если команду для вызова фильтра (назовём её Custom_F_D) записать отдельной строкой в секцию [Items] файла TCFS2.ini. Для обновлённого варианта она выглядит так:
Code:
Custom_F_D = 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
В кнопках же для этой команды останется передать только имя фильтра, например, так:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ei "Custom_F_D(
`не старше 1 дня`                                                                                    )"
WCMICONS.DLL,24
Фильтр для файлов/папок не старше 1 дня


-1
Для тех, кто создаст в ТК пользовательскую команду em_cd (с командой cd и параметром %A%Z), Custom_F_D будет такой:
Code:
Custom_F_D = run_item(locktc,1) tcm(524) tem(`em_cd >`#1) 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
Благодаря cd >имя_фильтра в этом случае на экране не будет мелькать один из двух диалогов выбора фильтра.

#78:  Author: sa PostPosted: Sat Oct 24, 2015 11:42
    —
Flasher
А какой резон в (UTime, 0, DNow - D) вместо (UTime, D, DNow)?

#79:  Author: FlasherLocation: Москва PostPosted: Sat Oct 24, 2015 12:29
    —
Avada
Вроде как решил проблему.

sa
Не вместо, а на старый манер так сделал. По сути это одно и то же.

#80:  Author: sa PostPosted: Sat Oct 24, 2015 12:32
    —
Flasher wrote:
По сути это одно и то же.

Тогда зачем же править скрипт?

#81:  Author: FlasherLocation: Москва PostPosted: Sat Oct 24, 2015 12:42
    —
Чтобы работал.

#82:  Author: sa PostPosted: Sat Oct 24, 2015 12:46
    —
Flasher
Точнее, чтобы правильно работал. Тогда и первый уж поправь.

#83:  Author: FlasherLocation: Москва PostPosted: Sat Oct 24, 2015 12:49
    —
sa
А неправильно - это как?
В первом нечего править.

#84:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 12:58
    —
sa
Второй вариант скрипта неправильно работал в x64, с первым проблем не было, поскольку иначе выводилось сообщение об отсутствии соответствий. Воспроизводить здесь всю историю проблемы, подробно прорабатывавшуюся в ЛС, нет возможности.

#85:  Author: sa PostPosted: Sat Oct 24, 2015 13:00
    —
Flasher wrote:
В первом нечего править.

То есть там так и останется (UTime, 0, DNow - D)?
Попробуй, например строку параметров, когда m = 1 и сравни результаты первого и второго скриптов.

#86:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 13:01
    —
Flasher
Всё, результат достигнут. Благодарю за долготерпение.

#87:  Author: FlasherLocation: Москва PostPosted: Sat Oct 24, 2015 13:08
    —
sa
В этом нет необходимости. Я уже указал на неизменность сути.

Avada
Хорошо. Пожалуйста.

#88:  Author: sa PostPosted: Sat Oct 24, 2015 13:14
    —
Flasher wrote:
Я уже указал на неизменность сути.

Тогда верни (UTime, 0, DNow - D) и во второй и считай, что я ни о чём не спрашивал.

#89:  Author: FlasherLocation: Москва PostPosted: Sat Oct 24, 2015 13:16
    —
sa
Просто расслабься. Cool

#90:  Author: sa PostPosted: Sat Oct 24, 2015 13:22
    —
Flasher wrote:
расслабься

Хорошо! С моим вариантом (UTime, D, DNow) во втором скрипте это не сложно.

#91:  Author: FlasherLocation: Москва PostPosted: Sat Oct 24, 2015 13:32
    —
sa wrote:
это не сложно.
Будем надеяться. Вся антидемагогическая комиссия скрестила пальцы. Smile

#92:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 15:58
    —
sa
Может быть, пора решить, что ваши разногласия по применению того или иного способа лучше обсуждать в ЛС? Я тоже мог не переносить в личку весьма обширные дискуссии по нюансам применения обоих ваших методов, но не думаю что это пошло бы на пользу тем, кто читает эту тему...

#93:  Author: sa PostPosted: Sat Oct 24, 2015 20:54
    —
Avada wrote:
разногласия по применению того или иного способа лучше обсуждать в ЛС?
Нет уж, увольте!

Ну и пока решение об обсуждении разногласий в ЛС ещё не принято, доложу комиссии (надеюсь, она ещё заседает Smile ) о результатах расслабления.
Проверял скрипты на содержимом Install.cab 32-разрядного TC 8.52a, скопированном на диск.
Строка параметров была такой: 2 2 m = 1.
Первый скрипт не выбрал (не отфильтровал) ни одного файла. Второй отфильтровал все (их там 32). Неужели,
Flasher wrote:
По сути это одно и то же
?
Примерно такие же по степени несхожести результаты можно получить и в папке с установленным TC 8.52a.

#94:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 21:49
    —
sa
Да, получается не одно и то же. Да, здесь работа скриптов различается. Но я свои кнопки настраивал не на равенство, а на <= и получил вполне ожидаемый результат, одинаковый в обоих скриптах (из коих первый меня уже интересует постольку-поскольку, ибо пользоваться намерен последним).
В связи с этим хочу спросить: какой результат работы скрипта при указанных в предыдущем посте параметрах следует считать правильным?
Иначе говоря, какому временному промежутку (в днях от сегодняшнего) должны на самом деле соответствовать параметры m = 1?

#95:  Author: sa PostPosted: Sat Oct 24, 2015 22:04
    —
Avada wrote:
на <= и получил вполне ожидаемый результат, одинаковый в обоих скриптах
У меня (на содержимом Install.cab) результат, такой же, как и для m = 1, то есть снова разный для двух скриптов.

#96:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 22:24
    —
sa
Да, первый скрипт применительно к распакованному дистрибутиву TC (именно там!) сообщает, что соответствий нет, второй оставляет все файлы и ничего не сообщает. Но как насчёт ответа на заданный мной вопрос?

#97:  Author: sa PostPosted: Sat Oct 24, 2015 22:37
    —
Avada
Я про то же:
Quote:
Первый скрипт не выбрал (не отфильтровал) ни одного файла. Второй отфильтровал все (их там 32)

Avada wrote:
как насчёт ответа
Лучше получить его от автора скриптов.

#98:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 22:54
    —
sa
Лучше получить его ото всех заинтересованных лиц. Раз выставляется некий критерий, то предполагается, очевидно, что выставляющему при получении некоего результата будет понятно, соответствует он критерию или нет. (Например, несколько раньше в этой теме я высказался против включения в параметры двух раздельных равенств после того, как доказать экспериментально их практическую полезность просто не смог.) Сейчас меня интересует правильное использование конкретно параметра с месяцами. Пока безотносительно к каталогу с дистрибутивом TC, в общем виде.

#99:  Author: sa PostPosted: Sat Oct 24, 2015 23:07
    —
Avada wrote:
какому временному промежутку (в днях от сегодняшнего) должны на самом деле соответствовать параметры m = 1
Мне кажется, здесь не должно быть речи о днях, речь о месяце, который отличается от текущего на 1 (то есть в октябре это сентябрь, независимо от дней этих месяцев).

#100:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Oct 24, 2015 23:30
    —
sa
Мысль понятна, но фактами не подтверждается. Если вот сейчас выполнять обычную фильтрацию с помощью поискового шаблона TC (по критерию "не старше 1 месяца" со стандартной опцией), то найдены будут файлы за сентябрь-октябрь. Похоже, всё-таки это последние 30 дней.

#101:  Author: sa PostPosted: Sun Oct 25, 2015 00:50
    —
Avada wrote:
Мысль понятна, но фактами не подтверждается.

Я говорил не о стандартной опции поиска в TC, а о работе функции DateDiff в VBS-скриптах.

#102:  Author: FlasherLocation: Москва PostPosted: Sun Oct 25, 2015 03:36
    —
Avada wrote:
Да, первый скрипт применительно к распакованному дистрибутиву TC (именно там!) сообщает, что соответствий нет
Первый ничего не может сообщить.

В общем, да, я ошибся насчёт аналогии и поспешил с внесением правки (sa как всегда 'помог'), теперь впомнил, зачем я разницу с вычитанием применял. Думаю, лучше вернуть во второй скрипт исходный способ, который указывает целую часть единицы при посекундном сравнении, в отличии от именного, если так можно выразиться.
Можно, конечно, сделать опционально, но что-то как-то...

Ладно, ждать не стал. Вернул как было.

#103:  Author: sa PostPosted: Tue Oct 27, 2015 13:11
    —
Flasher
А как насчёт того, чтобы ответить на вопрос Avada, какому временному промежутку должны соответствовать параметры m = 1?

#104:  Author: sa PostPosted: Thu Oct 29, 2015 09:43
    —
Попробовал изменить скриптовую функцию Test проверки соответствия временному промежутку таким образом, чтобы бы она давала результат, схожий с результатом стандартной опции "Не старше" диалога поиска ТК:
Code:
Function Test(Item)
  Dim D, Cnt, UT
  If DType = 1 Then D = Item.DateCreated Else D = Item.DateLastModified
  If (UTime = "s") or (UTime = "n") or (UTime = "h") Then UT = "s" Else UT = "d"
  Cnt = DateDiff(UT, D, DateAdd(UTime, -Count, DNow))
  Test = Eval(Cnt & Comp1 & 0)
  If C > 5 Then
    Cnt = DateDiff(UT, D, DateAdd(UTime, -Count2, DNow))
    Test = Test And Eval(Cnt & Comp2 & 0)
  End If
End Function

#105:  Author: sa PostPosted: Mon Nov 02, 2015 09:42
    —
Flasher wrote:
нераздражающее всплывающее окошко под курсором в случае отсутствия фильтрации.

Заменил у себя на стандартное сообщение ТК (Такие файлы не найдены), которое выдаётся тоталом при отсутствии выделения, в том числе по фильтру. Предложенное окошко не понравилось, в первую очередь тем, что сбрасывало фильтр показа только выделенных объектов аналогично случаю смены окон.

#106:  Author: FlasherLocation: Москва PostPosted: Mon Nov 02, 2015 13:53
    —
sa wrote:
сбрасывало фильтр показа только выделенных объектов
Попытка применить фильтр в фильтре? Very Happy
Лучше уж так, чем модальное окно, которое нужно самому закрывать.

#107:  Author: sa PostPosted: Mon Nov 02, 2015 14:25
    —
Flasher wrote:
Попытка применить фильтр в фильтре?

Необязательно: фильтр сбрасывается и в пассивной панели.

#108:  Author: sa PostPosted: Thu Nov 05, 2015 12:43
    —
Продублирую.



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


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

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group