Выделение файлов в панели результатов поиска по их именам
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Выделение файлов в панели результатов поиска по их именам Author: BeardFury78 PostPosted: Thu May 25, 2017 10:01
    —
Хотелось бы кнопку или скрипт, чтобы можно было в панели результатов поиска выделять файлы по их именам из буфера обмена. Встроенная функция выделения из буфере там работает только с полными путями, а способ со звездочкой перед именами файлов мне не подошел, работает это как-то странно, некоторые файлы выделяются, а некоторые вовсе нет, хотя должны и еще захватываются лишные файлы, имеющие в конце названия ту же часть, которая есть в скопированных именах. Есть ли возможность сделать кнопку или скрипт, чтобы нужные файлы выделялись как надо? Спасибо.

#2:  Author: sa PostPosted: Thu May 25, 2017 16:27
    —
BeardFury78
Вариант выделить ручками после Ctrl+S и Ctrl+V, наверное, не подойдёт?

#3:  Author: MVVLocation: Ростов-Дон PostPosted: Thu May 25, 2017 16:56
    —
sa,
Ты ведь не можешь в окне быстрого поиска ввести несколько имен или путей...

#4:  Author: sa PostPosted: Thu May 25, 2017 17:40
    —
MVV
Понятно, я то подумал, что в буфере только одно имя...

#5:  Author: FlasherLocation: Москва PostPosted: Thu May 25, 2017 17:56
    —
BeardFury78
Code:
'===================== VBS ======================
' Выделение элементов с именами из буфера обмена

' Условия: 1) требуется компонент TCScript.dll;
'          2) имена папок должны иметь \ на конце

' Параметры: "%P" <выдел. всё/файлы/папки: 1/2/3>
'================================================
Set R = New RegExp : R.Global = True : P = WSH.Arguments(0)
With CreateObject("TCScript.Helper")
  .Pause = 0 : .Wait = True : Clip = .GetTextFromClip
  R.Pattern = "^[\r\n]+|[\r\n]+$|\r?\n(?=(\r?\n)+)"
  RClip = Replace(R.Replace(Clip, ""), vbNewline, "|")
  R.Pattern = "([.;$+^\\\(\)\{\[])" : R.MultiLine = True
  R.Pattern = "(^|\r\n)([^\r\n]+\\(" & R.Replace(RClip, "\$1") & "))$"
  .NoArrayReturn = True : .LockTC True : .SendCommand 524, True
  .SendCommand 3300 + WSH.Arguments(1), True
  Sel = .GetSrcSelectedFiles(1) : .Sleep 20
  For Each Path in R.Execute(Sel)
    List = List & Path.Value
  Next : .SendCommand 524, True
  If P <> "" Then List = Replace(List, P, "") : .Sleep 20
  .SetTextToClip List : .SendCommand 2033, True
  .LockTC False : .SetTextToClip Clip
End With


Last edited by Flasher on Sun May 28, 2017 02:52; edited 6 times in total

#6:  Author: BeardFury78 PostPosted: Thu May 25, 2017 17:57
    —
sa
В панели результатов поиска приходится работать с тысячами и десятка тысячами файлов. Не подходит.

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

Flasher
Спасибо, работает отлично!

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

Заметил, если в текстовом редакторе есть пустые строки и их вместе со строками имен скопировать, то вместе с нужными файлами выбираются все папки сверху на панеле результатов поиска. Хорошо, что заметил на стадии подтверждения перемещения, а иначе потерял бы всю структуру папок.

#7:  Author: FlasherLocation: Москва PostPosted: Thu May 25, 2017 21:47
    —
BeardFury78
Не удаётся воспроизвести. Режим, второй параметр и имена папок/файлов в студию.

#8:  Author: BeardFury78 PostPosted: Thu May 25, 2017 22:17
    —
Flasher
Панель результатов поиска, параметр "1", имена файлов к примеру такие:

Quote:
img 3846.jpg
img 3847.jpg
img 3848.jpg
img 3850.jpg
img 3852.jpg
img 3853.jpg
img 3855.jpg
img 3857.jpg
img 3861.jpg
img 3863.jpg
img 3884.jpg
img 3892.jpg
img 3896.jpg
img 3898.jpg
img 3899.jpg
img 3901.jpg
img 3902.jpg
img 3903.jpg


Да и кстати редактор Notepad++, откуда копирую и пустые строки находятся посреди строк имен, тогда в этом случае все папки выделяются. Если пустые строки находятся в конце или в начале, то бага не возникает.

#9:  Author: FlasherLocation: Москва PostPosted: Thu May 25, 2017 22:28
    —
BeardFury78
Обновил.

#10:  Author: BeardFury78 PostPosted: Thu May 25, 2017 22:42
    —
Flasher
Бага теперь нет, спасибо!

#11:  Author: FlasherLocation: Москва PostPosted: Thu May 25, 2017 22:56
    —
BeardFury78
Пожалуйста. Ещё одну мелочь убрал. Что касается
BeardFury78 wrote:
на стадии подтверждения перемещения
- опять промежуточная была задача?

#12:  Author: BeardFury78 PostPosted: Thu May 25, 2017 23:12
    —
Flasher
Нет, просто приходится много работать в панели результатов поиска, где там по некоторым файлам произвожу разные операции: групповое переименование, перемещение, плюс еще может какие действия. Выделение по именам в панели результатов поиска - это как раз то, что и мне нужно, автоматизировать больше ничего не надо.

#13:  Author: FlasherLocation: Москва PostPosted: Fri May 26, 2017 11:44
    —
BeardFury78
ОК. Ещё немного оптимизировал.

#14:  Author: BeardFury78 PostPosted: Fri May 26, 2017 13:17
    —
Flasher
С новым вариантом скрипта возникла ошибка "Строка: 16 Символ: 3 Ошибка: Объект не поддерживает это свойство или метод:'NoArrayReturn'" и ничего не выделяется. Предыдущие версии работают нормально. Параметры те же самые.

#15:  Author: FlasherLocation: Москва PostPosted: Fri May 26, 2017 13:30
    —
BeardFury78
Так версия модуля должна быть текущей, разумеется.



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


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

Goto page 1, 2, 3  Next  :| |:
Page 1 of 3

Powered by phpBB © 2001, 2005 phpBB Group