Страница 1 из 3
Выделение файлов в панели результатов поиска по их именам
Добавлено: Чт май 25, 2017 09:01
BeardFury78
Хотелось бы кнопку или скрипт, чтобы можно было в панели результатов поиска выделять файлы по их именам из буфера обмена. Встроенная функция выделения из буфере там работает только с полными путями, а способ со звездочкой перед именами файлов мне не подошел, работает это как-то странно, некоторые файлы выделяются, а некоторые вовсе нет, хотя должны и еще захватываются лишные файлы, имеющие в конце названия ту же часть, которая есть в скопированных именах. Есть ли возможность сделать кнопку или скрипт, чтобы нужные файлы выделялись как надо? Спасибо.
Добавлено: Чт май 25, 2017 15:27
sa
BeardFury78
Вариант выделить ручками после Ctrl+S и Ctrl+V, наверное, не подойдёт?
Добавлено: Чт май 25, 2017 15:56
MVV
sa,
Ты ведь не можешь в окне быстрого поиска ввести несколько имен или путей...
Добавлено: Чт май 25, 2017 16:40
sa
MVV
Понятно, я то подумал, что в буфере только одно имя...
Добавлено: Чт май 25, 2017 16:56
Flasher
BeardFury78
Код: Выделить всё
'===================== 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
Добавлено: Чт май 25, 2017 18:40
BeardFury78
sa
В панели результатов поиска приходится работать с тысячами и десятка тысячами файлов. Не подходит.
Добавлено спустя 16 минут:
Flasher
Спасибо, работает отлично!
Добавлено спустя 1 час 29 минут:
Заметил, если в текстовом редакторе есть пустые строки и их вместе со строками имен скопировать, то вместе с нужными файлами выбираются все папки сверху на панеле результатов поиска. Хорошо, что заметил на стадии подтверждения перемещения, а иначе потерял бы всю структуру папок.
Добавлено: Чт май 25, 2017 20:47
Flasher
BeardFury78
Не удаётся воспроизвести. Режим, второй параметр и имена папок/файлов в студию.
Добавлено: Чт май 25, 2017 21:17
BeardFury78
Flasher
Панель результатов поиска, параметр "1", имена файлов к примеру такие:
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++, откуда копирую и пустые строки находятся посреди строк имен, тогда в этом случае все папки выделяются. Если пустые строки находятся в конце или в начале, то бага не возникает.
Добавлено: Чт май 25, 2017 21:28
Flasher
BeardFury78
Обновил.
Добавлено: Чт май 25, 2017 21:42
BeardFury78
Flasher
Бага теперь нет, спасибо!
Добавлено: Чт май 25, 2017 21:56
Flasher
BeardFury78
Пожалуйста. Ещё одну мелочь убрал. Что касается
BeardFury78 писал(а):на стадии подтверждения перемещения
- опять промежуточная была задача?
Добавлено: Чт май 25, 2017 22:12
BeardFury78
Flasher
Нет, просто приходится много работать в панели результатов поиска, где там по некоторым файлам произвожу разные операции: групповое переименование, перемещение, плюс еще может какие действия. Выделение по именам в панели результатов поиска - это как раз то, что и мне нужно, автоматизировать больше ничего не надо.
Добавлено: Пт май 26, 2017 10:44
Flasher
BeardFury78
ОК. Ещё немного оптимизировал.
Добавлено: Пт май 26, 2017 12:17
BeardFury78
Flasher
С новым вариантом скрипта возникла ошибка "Строка: 16 Символ: 3 Ошибка: Объект не поддерживает это свойство или метод:'NoArrayReturn'" и ничего не выделяется. Предыдущие версии работают нормально. Параметры те же самые.
Добавлено: Пт май 26, 2017 12:30
Flasher
BeardFury78
Так версия модуля должна быть текущей, разумеется.