View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 29, 2016 00:24 Post subject: |
|
|
ОК. C dsl уже нашёл. Завтра посмотрю тогда, получится через поток или нет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon May 30, 2016 12:59 Post subject: |
|
|
К сожалению, этот плагин не даёт возможность вернуть пути к интерпретатору и скрипту
Code: | Content = WScript.FullName
Content1 = WScript.ScriptFullName | , а без них по-простому консоль не скроешь... _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jun 08, 2016 19:00 Post subject: |
|
|
Gentoo69
Так что, долго ждать починок? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Gentoo69
Joined: 11 Jul 2010 Posts: 68
|
(Separately) Posted: Fri Jun 10, 2016 03:12 Post subject: |
|
|
Обновление
v1.6 10 June, 2016
***
Добавлена поддержка PowerShell
____________________________________________
PowerShell.exe необходимо некоторое время для старта перед первым использованием ~3 - 6 секунд. Так что первые 3-6 сек, колонки будут пустыми.
PowerShell.exe запускается только раз, и остается запущенным пока не закроется WinScriptAdv плагин.
Можно ускорить запуск PS (вообще, не только в плагине), запустив один раз скрипт в консоли PowerShell (см. ниже) .
До : powershell.exe запускается около 5 сек.
После: powershell.exe запускается около 1,5 сек.
Code: | $env:path = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | % {
if (! $_.location) {continue}
$Name = Split-Path $_.location -leaf
Write-Host -ForegroundColor Yellow "NGENing : $Name"
ngen install $_.location | % {"`t$_"}
} | Source |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 10, 2016 03:25 Post subject: |
|
|
Gentoo69
А на мой вопрос ответить? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Gentoo69
Joined: 11 Jul 2010 Posts: 68
|
(Separately) Posted: Fri Jun 10, 2016 03:42 Post subject: |
|
|
Flasher
На днях будет готово.
Только я не понял вот это: Quote: | К сожалению, этот плагин не даёт возможность вернуть пути к интерпретатору[...]
, а без них по-простому консоль не скроешь...
|
Плагин ведь запускает парсер(интерпретатор) всегда со скрытым окном, т.е. консоль не видно будет...
Или о чем тут речь? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 10, 2016 04:15 Post subject: |
|
|
Gentoo69
Может, и ошибаюсь, но не будет видно только консоли с заданным в конфиге CScript, а не той, что вызывается по WSH.Exec.
Что касается поста, то там больше касалось текущей возможности для реализации возврата запрошенных полей. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Gentoo69
Joined: 11 Jul 2010 Posts: 68
|
(Separately) Posted: Tue Jun 28, 2016 01:28 Post subject: |
|
|
Обновление
Не могу обновить шапку. Пишет "Sorry, but only moderators can edit old posts."
Скачать
v.1.7 27 June, 2016
***
Унификация скриптов.
Только для скриптов которые работают через exe интерпретаторы - AHK, PHP, Autoit:
Сейчас вам не нужно добавлять в конце подобных скриптов код для вывода на StdOut консоль значений переменных "content". Плагин сгенерирует и добавит эти строки. Поэтому удалите эти строки с конца кода скрипта, если они есть. (плагин также будет работать корректно если эти строки остались). См. примеры в папке Scripts.
***
Added 2 new params for ExeScriptParsers section:
StdOutFormat and CmdArgs
E.g.: au3=c:\Program Files (x86)\AutoIt3\AutoIt3.exe
au3CmdArgs=ExeArgs
au3StdOutFormat=ConsoleWrite ($%s & @CRLF)
Read info in options.ini
Now you can use VBS in portable versions of Total Commander:
options.ini:
Code:
Code: | ; This VBS interpreter is only for example, WinScriptadv uses vbs\js\python engines via COM that is much faster than this.
; You can use it in portable versions of Total commander or if WSH is broken in Windows.
;vbs=%WINDIR%\system32\cscript.exe
;vbsCmdArgs=//nologo
;vbsVarFormat=filename="%s"
;vbsDoubleSlashPath=0
;vbsStdOutFormat=Wscript.echo %s
|
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jun 28, 2016 05:27 Post subject: |
|
|
Gentoo69
На днях не получилось. Ну, хоть так.
В общем... С VBS все грабли, о которых шла речь, на виду.
1. Схема с указанием Cscript хоть и работает, но очень медленно в сравнении с простым вызовом с кнопки, даже если весь скрипт - это "Content = 1".
2. В ряде ситуаций вместо результата стала появляться отладка "Время ожидания операции истекло".
3. Wscript.echo надо менять на предлагаемую Wscript.StdOut.WriteLine, иначе имеем зябры вместо кириллицы. Юникод же и в этом случае не читается. Надо бы допилить.
4. Как и писал, после правки скрипта ничего в активной панели не обновляется ни при отключении/включении колонок, ни при обновлении панели, ни при переходе в другой каталог с возвратом.
5. Из-за неудовлетворения просьбы с подключением задаваемого парсера в отдельных скриптовых секциях имеем проблему скорости отображения полей данных от старых скриптов, с которыми ранее данные появлялись в разы шустрее и без глюков с Юникодом и кириллицей.
Из плюсов:
1. В отношении же скрытия WSH.Exec "console" всё как надо.
2. Ключ для WSH временно переключается. Не знаю, всем ли это понравится, но меня устраивает. Поэтому, видимо, из описания можно исключить "or if WSH is broken in Windows". Хотя есть ещё политики. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Gentoo69
Joined: 11 Jul 2010 Posts: 68
|
(Separately) Posted: Tue Jun 28, 2016 12:00 Post subject: |
|
|
Flasher
1. Я не понял что такое Quote: | в сравнении с простым вызовом с кнопки, | . Можете подробнее объяснить?
А так быстрее не сделаешь, через exe парсер всегда медленно. Максимально быстро работает через COM (т.е если закомментировать\убрать эти строки с vbs в options.ini ExeScriptParsers).
2. Время ожидания операции истекло - когда парсер не закрывается в течении определенного времени, - 2 с половиной секунды.
3. Насчет юникода - я не знаю можно ли писать в консоль юникод. Всмысле писать то можно, но оттуда выходит не юникод.
4. В чем проблема закрыть\открыть TC. Это ж секунда, тем более все настройки ТС сохраняет. А делать отдельный функционал для этого думаю не стоит - т.к. обычно скрипты пишутся и отлаживаются отдельно от плагина, а тратить ресурсы на мониторинг скрипт файлов (придется сравнивать дату по таймеру) имхо не надо.
Хотя если сильно понадобится можно и сделать.
5. Ну а как тут по другому? Есть парсер который обрабатывает VBS скрипты через Com - он работает быстро, вы указываете--переопределяете другой парсер для VBS скриптов, указав его exe, соответственно все VBS скрипты будут выполняться через указанный другой парсер. Нет смысла разделять часть vbs скриптов через COM, а часть vbs через спец. парсер. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jun 28, 2016 14:13 Post subject: |
|
|
Gentoo69
1. Вызов скрипта командой <путь к CScript.exe> "<путь к скрипту>" с какой-нибудь мессагой.
2. Так почему ему требуется так много времени?
3. Пример на vbs:
Code: | CreateObject("Scripting.FileSystemObject")._
GetStandardStream(1, True).Write "Символы Unicode: àéÿüĄŀĦĤŕž"
WScript.Echo WScript.StdIn.ReadLine | Вызовем из Run: cmd /k cscript.exe //nologo C:\Тест\UnicodeStdOut.vbs
и увидим в консоли правильные символы.
4. Как можно отладить отдельно, если нужно узнать именно поведение плагина, отличающееся от поведения стандартного вызова (правильность отображения, скорость вывода)? И это никак не секунда, а где-то от 5-6 до 15 с учётом всех операций автозавершения и автозапуска, как у меня. Поэтому стоило бы сделать хотя бы опционально.
5. Как это не смысла, если я о нём написал выше? Разделение даст возможность работать быстро там, где не требуется дополнительных данных, и наоборот.
Т.е. по сути ничего в ini не меняется за исключением доп. ключа активации стороннего интерпретатора в секциях скриптов, в то время как без указания ключа останется системный.
6. А ещё у меня выползало окно "Crash External exception EEDFADE".
7. И почему не работает Option Explicit? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jun 29, 2016 18:10 Post subject: |
|
|
Flasher wrote: | Завтра посмотрю тогда, получится через поток или нет. | Да, совсем забыл. Т.к. внешник добавили, опубликую вариант от 30.05:
Dicts.vbs Code: | '================== Путь к 7z.exe ==================
Const Z7 = """%COMMANDER_PATH%\Utils\7-Zip\7z.exe"""
'===================================================
Dim FSO, Ext, FileName, Strm, Stream, N, Reg,_
Enc, Content, Content1, Content2, Exec, Check
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WSH : Set WSH = CreateObject("WScript.Shell")
Ext = FSO.GetExtensionName(FileName)
If Ext = "dz" Then
Ext = FSO.GetExtensionName(FSO.GetBaseName(FileName))
Set Strm = WSH.Exec("cmd /c chcp 1251&" &_
Z7 & " x """ & FileName & """ -so|more /c")
Set Stream = Strm.StdOut : Stream.SkipLine
Else : N = 0 : If Ext = "dsl" Then N = -1
Set Stream = FSO.OpenTextFile(FileName,,,N)
End If : Set Reg = New Regexp : Reg.IgnoreCase = True
If Ext = "dsl" Then
Call DSL("NAME", Content)_
("INDEX_LANGUAGE", Content1)("CONTENTS_LANGUAGE", Content2)
ElseIf Ext = "xdxf" Then
Reg.Pattern = ".*encoding=""(.*)"".*" : Check = 1
Enc = Reg.Execute(Stream.ReadLine)(0).Submatches(0)
Reg.Pattern = "^<xdxf lang_from=""(\w+)"" lang_to=""(\w+)"" "
Stream.SkipLine : Set Exec = Reg.Execute(Stream.ReadLine)(0)
Content1 = Exec.Submatches(0) : Content2 = Exec.Submatches(1)
Reg.Pattern = "^<full_name>(.+)</full_name>"
With CreateObject("ADODB.Stream")
.Open : .Charset = "windows-1251" : .WriteText Stream.ReadLine
.Position = 0 : .Charset = Enc
Content = Reg.Execute(.ReadText)(0).Submatches(0) : .Close
End With
End If: Stream.Close : Set Stream = Nothing : Set FSO = Nothing
If IsObject(Strm) Then Strm.StdIn.Write "q" :_
If Check Then WSH.Exec "taskkill /T /F /PID " & Strm.ProcessID
Function DSL(Ins, Cont)
Reg.Pattern = "^#" & Ins & "\s+""(.*)""$"
Cont = Reg.Execute(Stream.ReadLine)(0).Submatches(0)
Set DSL = GetRef("DSL")
End Function |
Предложенные ключи в options.ini для vbs раскомментировать, Wscript.echo заменить на Wscript.StdOut.WriteLine, в ActiveScripts добавить |Dicts с конца. И снизу секцию Code: | [Dicts]
Script=Dicts.vbs
content=Название
content1=Язык 1
content2=Язык 2
extensions=dsl|dz|xdxf | Перезапустить ТС. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Thu Jun 30, 2016 04:54; edited 2 times in total |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Wed Jun 29, 2016 22:19 Post subject: |
|
|
Flasher
Спасибо. А консольное окно чтоб где-нибудь за кулисами отображалось можно сделать?
Last edited by Dimsok on Wed Jun 29, 2016 22:22; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jun 29, 2016 22:22 Post subject: |
|
|
Dimsok >
Flasher wrote: | Предложенные ключи в options.ini для vbs раскомментировать |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Wed Jun 29, 2016 22:29 Post subject: |
|
|
vbsStdOutFormat=Wscript.StdOut.WriteLine %s раскомментировал. А что ещё нужно? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|