Страница 1 из 20

[wdx] WinScript Advanced Content Plugin (x86\x64) (new)

Добавлено: Ср май 18, 2016 22:35
Gentoo69
WinScript Advanced
(c) Alex Shy, 2016 (= автор топика)

Тема на оффоруме

Контентный плагин WinScriptAdv запускает скрипты для каждого файла и папки и возвращает результат работы скрипта (строку) в колонки.
Вы можете писать скрипты для получения любой полезной информации из файла/папки или парсить имя для сортировки в требуемом порядке, переименования в инструменте группового переименования и т.д.

Вы можете активировать неограниченное количество скриптов в одной группе колонок (в одной панели) - они будут работать совместно.

Скрин 1
Скрин 2
Скрин 3

Возможности:

* До 21 колонки в одном скрипте
* Неограниченное количество совместно работающих скриптов (по 21 колонке на скрипт) в одной группе колонок
* Возможность изменять заголовки колонок
* Поддерживаемые языки:
  • VBS, (через COM)
    JS, (через COM)
    Python (*.py) (через COM)
    AutoHotKey (*.ahk) (через exe парсер)
    PHP (*.php) (через exe парсер)
    AutoIt (*.au3) (через exe парсер)
    PowerShell (*.ps1) (через exe парсер, всегда запущен)
см. рабочие примеры скриптов в папке Scripts.

* Возможность устанавливать собственные скриптовые движки, указав путь к exe интерпретатора.
* Стабильный и быстрый
(быстрый в случае использования языков через COM - VBS, JS, Python, языки, которые работают через exe парсер - заметно медленнее)
* С открытым исходным кодом (Delphi XE8) - будет открыт в ближайшее время

Полностью совместим со скриптами, созданными для плагина script_wdx (автор Lev Freidin, wincmd.ru и totalcmd.net), у вас нет необходимости исправлять их: скрипты для WinScriptAdv имеют тот же формат - переменная с именем "filename" и переменные с результатом content, content1, content2, ... content20 (всего 21).

[cut="Полезные скрипты (идут вместе с плагином):"]CheckEncoding.vbs
Возвращает кодировку файла и окончание строк. Например: ASCII - CRLF (Win)

Signature.vbs
Возвращает первые 10 байт файла в виде текста или hex-последовательности. Может быть полезен, например, для поиска файлов с указанием сигнатуры.

DayOfWeek
Показывает день недели даты модификации файла.

Html_info
Два поля для html-файлов: заголовок страницы (title) и ссылка, по которой файл был скачан ("saved from", если есть).

SearchInFile
Поиск по содержимому файла с помощью регулярного выражения.

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

FileOwner
Возвращает владельца файла/папки.

MinutesAgo
Возвращает разницу в минутах между текущей датой и датой папки/файла. Например:

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

Модифицирован: 
3 min ago

или

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

Создан: 
10 min ago
[/cut]

Скачать:
http://wincmd.ru/plugring/WinScriptAdv.html

Ваши предложения, сообщения о найденных ошибках, новые скрипты пожалуйста отправляйте в эту тему или в соседнюю.

**
Вы можете добавить все имеющиеся скрипты в раздел
[Script]
ActiveScripts=
Это не повлияет на производительность, т.к. скрипты запускаются только если колонка активна в ТС.

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

Добавлено: Чт май 19, 2016 02:42
Flasher
О как. Предчуствие не обмануло, коль затягивал с выкладкой. Что называется, кто не успел, тот опоздал. :)
Skif_off более полноценный и грамотно оформленный перевод скидывал с описаниями. Перенаправил в ЛС.

Вопросы вероятно появятся после некоторых тестов.

Добавлено: Чт май 19, 2016 03:26
Gentoo69
Flasher писал(а):О как. Предчуствие не обмануло, коль затягивал с выкладкой. Что называется, кто не успел, тот опоздал. :)
Skiff_off более полноценный и грамотно оформленный перевод скидывал с описаниями. Перенаправил в ЛС.

Вопросы вероятно появятся после некоторых тестов.
Обновил описание, спасибо Skiff_off и Flasher.

Инфу по поводу создания скриптов убрал из шапки форума в Readme (на англ.), кроме того, там содержится один ньюанс для скриптов, которые работают с exe парсерами напрямую (и только для них!) - нужно выводить результаты переменных content, content1 итп. в StdOut (в консоль).
(все это есть в примерах скриптов в папке Scripts, т.е. в принципе ридми можно и не читать :) - а сразу брать тестовый скрипт нужного разрешения и на его основе делать то, что Вам необходимо).

Добавлено: Чт май 19, 2016 07:11
Avada
Gentoo69
Шапка темы приведена в несколько более компактный вид. Дубль в "Автоматизации" удалён как нарушающий правила форума.

Добавлено: Чт май 19, 2016 16:06
Rodny
Gentoo69
Не нужно файл в дистрибутиве называть options.ini, пускай он будет что-нибудь вроде options.ini.sample. А то при обновлении он затирает имеющийся файл.

Добавлено: Чт май 19, 2016 17:02
Flasher
Gentoo69
Отдельное спасибо за extensions и возврат значений из процедур! Теперь от лишнего кода можно избавиться.
1. Просьба ввести ключ 2 (только папки) для FoldersPaths.
2. У SCP была возможность обновлять возращаемые с обновлённым кодом поля без перезапуска ТС. Есть возможность осуществить?
3. Можно ли рассчитывать в будущем на ключ для пути к интерпретатору (без костылей с StdOut)?
4. В ReadMe перевод на русский хотелось бы. Строки снизу там лишние. И Alt+Backspace в AkelPad нажать не помешает.

Добавлено: Чт май 19, 2016 17:13
Skif_off
Flasher
2. cm_UnloadPlugins, а потом cm_LoadAllOnDemandFields? Блин, а я перезапускал :)

Добавлено: Чт май 19, 2016 17:30
Flasher
Skif_off
Это-то понятно. Но я панель по Esc обновляю.

Добавлено: Чт май 19, 2016 18:02
Skif_off
Flasher
cm_RereadSource?

Добавлено: Чт май 19, 2016 18:06
Flasher
Skif_off
Почти. 540,524.

Добавлено: Чт май 19, 2016 18:13
Gentoo69
Flasher
1. Просьба ввести ключ 2 (только папки) для FoldersPaths.
Ok.
2. У SCP была возможность обновлять возращаемые с обновлённым кодом поля без перезапуска ТС. Есть возможность осуществить?
2.1 Закрыть > открыть TC это ж занимаем секунды.
2.2 По идее в options.ini придется не часто ходить (только во время добавления нового скрипта), один раз забрасываем все скрипты, прописываем их все в ActiveScripts (это не влияет на производительность, скрипты запускаются только если колонка видимая), далее включаем или отключаем их через TC - например можно создать группы нужных скриптов (т.е. колонок) и переключаться между ними в ТС (правая кнопка мыши по колонке).

3.
Можно ли рассчитывать в будущем на ключ для пути к интерпретатору?
Сейчас уже можно указать путь к любому интерпретатору в секции, к примеру копипаста из options.ini:

[ExeScriptParsers]
php=c:\php\php.exe
phpVarFormat=$filename='%s';
phpDoubleSlashPath=0
Можно ли рассчитывать в будущем на ключ для пути к интерпретатору, без костылей с StdOut [из скрипта]?
А как тогда получать результаты от скрипта в таких парсерах?
К примеру для php скрипта в конце кода нужно написать:

echo $content;
или
echo $content;
echo $content1;

...
Разве что плагин сам добавит эти строчки в скрипт.
Хм, а это идея, надо подумать.
Я правильно вас понял - т.е. суть в унификации - чтобы и vb\js\python (у них не нужно в скриптах выводить результаты на консоль, переменная читается напрямую через COM) и php имели один стандарт написания, чтобы не путаться?
4. В ReadMe перевод на русский хотелось бы.
Я за плагин смогу взяться только через пару недель, там еще PowerShell на очереди, так что если можете помочь с переводом ReadMe - это было бы прекрасно.
Строки снизу там лишние.
Это не баг, а фича :D - чтобы текст в конце файла можно было проскролить на середину экрана, а не направлять глаза и голову вниз монитора (на больших мониторах)

Добавлено: Чт май 19, 2016 18:18
Staniclaw
Gentoo69 писал(а):2.1 Закрыть > открыть TC это ж занимаем секунды.
А если открыта вкладка с результатами поиска?

Добавлено: Чт май 19, 2016 18:32
Flasher
Gentoo69
2.1 Для тестов это крайне неприятная необходимость, когда проверка может возникать в минуту по неск. раз.
3. Та-ак. Я не обновился просто. В описании нигде не увидел. Теперь вижу. Тогда пойду смотреть. По идее и унификации всё верно.
4. Помочь не проблема, если кто-то не опередит. Там немного. Первый раз встречаюсь с фичей, но хозяин-барин. Но концевые пробелы вряд ли фича. ;)

Добавлено: Чт май 19, 2016 18:53
Skif_off
Gentoo69
Писал про #include <WinAPIFiles.au3>, прошу прощения, я был неправ: не заметил, что вы там используете константу $FO_READ

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

Local $hFileOpen = FileOpen($filename, $FO_READ)
(Обычно пишут числа и до 3.3.10.0 в документации в описании и примерах тоже писали сразу числа, хотя в 3.3.8.1 эти константы уже были.)

Проще записать в виде

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

Local $hFileOpen = FileOpen($filename, 0)
чтобы не тянуть include всего лишь из-за одной строки "Global Const $FO_READ = 0". В принципе, знакомый с AutoIt поймёт в чем дело, но я вас подвёл ненароком - из коробки пример стал нерабочим, ещё раз прошу прощения.

Добавлено: Чт май 19, 2016 19:01
Flasher
Gentoo69
3. Что-то у меня не получилось.

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

[ExeScriptParsers]
vbs=%COMMANDER_PATH%\Scripts\Parsers\wscript.exe
vbsVarFormat=filename="%s"
>>No data from script.

И да, было бы здорово указывать его отдельно для секций ActiveScripts, а не всех скриптов заданного расширения подряд.