Здравствуйте, гость ( Вход | Регистрация )

3 страниц V < 1 2 3 >  
Ответить в эту темуОткрыть новую тему
> LuaPosh, Новые возможности пилота
Fire73
сообщение 6.6.2020, 18:09
Сообщение #21


**

Neophyte
Сообщений: 34
Регистрация: 5.6.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.343
Возраст: 23



Дано:
89997001234:Forsik007:Алла Пугачева:uopilot@mail.ru:zdarovabanditi

Нужно с помощью регулярного выражения найти : 1234, Forsik007, uopilot@mail.ru и записать в переменные.


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 6.6.2020, 18:36
Сообщение #22


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Благодаря команде split, мы можем обойтись без постройки сложных паттернов регэкспа.
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$str ="89997001234:Forsik007:Алла Пугачева:uopilot@mail.ru:zdarovabanditi" -split ':'
$num =($str[0]).Substring(7,4)
$id =$str[1]
$mail=$str[3]

log $num, $id, $mail
#
]]})

Кстати, данная строка похожа на инфо о каком-то клиенте/заказчике и т. п.. Если планируется обрабатывать много таких строк, то будет классно создать объект клиента, в котором и будут все его данные. А в итоге вообще можем их всех сохранить в excel файл.
Например, вот так:
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$pathOut='C:\test\baza.csv'

$str ="89997001234:Forsik007:Алла Пугачева:uopilot@mail.ru:zdarovabanditi" -split ':'
$str1 ="88887774321:Bond007:Филипп Киркоров:philpilot@gmail.ru:privetbanditi" -split ':'
$clientALLA=@{#}
num
=($str[0]).Substring(7,4)
id
=$str[1]
mail
=$str[3]
}
$clientPHIL=@{#}
num
=($str1[0]).Substring(7,4)
id
=$str1[1]
mail
=$str1[3]
}
$Base=($clientALLA,$clientPHIL)
# Показать в логе Аллу*
log $clientALLA
# Показать в логе только mail Аллы
log $clientALLA.mail
# Сохранить базу в Excel таблицу
$base|%{[pscustomobject]$_| export-csv $pathOut -not -enc utf8 -d ';' -A}
start $pathOut
#
]]})

* Не забываем, что нужно открыть настройки пилота, выбрать шрифт лога, Lucida Console.

Сообщение отредактировал Fors1k - 11.1.2021, 23:50


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 17.6.2020, 16:48
Сообщение #23


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Fors1k @ 23.3.2020, 22:20) *

Распаковать рядом с exe пилота.
v. 4.1 Прикрепленный файл luaposh_v4.1.rar ( 5,08 килобайт ) Кол-во скачиваний: 51

Архив битый
--Upd--
Вот это поворот)
Все версии архивов битые
Цитата
Совет:
Распаковать рядом с exe пилота.
v. 4 Прикрепленный файл luaposh_v4.rar ( 5,01 килобайт ) Кол-во скачиваний: 34
Совет:
Распаковать рядом с exe пилота.
v. 3 Прикрепленный файл luaposh_v3.rar ( 3,31 килобайт ) Кол-во скачиваний: 28
Совет:
Распаковать рядом с exe пилота.
v. 2 Прикрепленный файл luaposh_v2.rar ( 1,88 килобайт ) Кол-во скачиваний: 41
Совет:
Распаковать рядом с exe пилота.
v. 1 Прикрепленный файл luaposh.rar ( 1010 байт ) Кол-во скачиваний: 34


Как закончилось моё знакомство с LuaPoshk)))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.6.2020, 17:54
Сообщение #24


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Levo222 @ 17.6.2020, 16:48) *
Архив битый

Что значит битый? У всех других открывается нормально.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 17.6.2020, 17:56
Сообщение #25


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Fors1k @ 17.6.2020, 21:54) *

Что значит битый? У всех других открывается нормально.

Я не другой. У меня всё через одно место. Перепробовал всеми архиваторами - не открывает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.6.2020, 18:17
Сообщение #26


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Levo222 @ 17.6.2020, 17:56) *
У меня всё через одно место.

Тогда в чем здесь вина моего архива?
Цитата(Levo222 @ 17.6.2020, 17:56) *
Перепробовал всеми архиваторами - не открывает.

Когда он не может открыть, то он что-то пишет. Например: неожиданный конец архива;файл поврежден.
Эту информацию он дает специально, что бы можно было понять что именно нужно исправить.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 17.6.2020, 19:17
Сообщение #27


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Fors1k @ 17.6.2020, 22:17) *

Тогда в чем здесь вина моего архива?

Когда он не может открыть, то он что-то пишет. Например: неожиданный конец архива;файл поврежден.
Эту информацию он дает специально, что бы можно было понять что именно нужно исправить.

Не удалось открыть файл как архив. 7-Zip/WinRar
luaposh_v4.1.rar: The archive is either in unknown format or damaged
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.6.2020, 20:49
Сообщение #28


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Может именно rar не хочет открывать у вас.


Сообщение отредактировал Fors1k - 30.6.2021, 17:37


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 9.7.2020, 19:15
Сообщение #29


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



LuaPosh V5
  1. Добавил команду определения цвета в заданных координатах.

    Получить цвет в окне 202896, в координатах 442х101:
    --lua
    log"clear";log"mode compact";require"luaposh"
    PScode('void',{[[#}
    #
    $color=Get-Color 202896 442 101
    msg_box $color
    #
    ]]})

    Поиск цвета можно отправить в отдельный поток, а ваш скрипт в это время может заниматься другими делами:
    --lua
    log"clear";log"mode compact";require"luaposh"
    PScode('r',{[[#}
    #
    ### Поток 1
    Start-Timer @"
    if ((Get-Color 922556 34 16) -eq 16510950){#} # отслеживаем появление цвета 16510950
    msg_box "Цвет обнаружен" # действия таймера
    log "Цвет обнаружен" # действия таймера
    }
    "@
    500 # интервал выполнения 500 ms
    ### Поток 2
    Start-Timer @"
    if ((Get-KeyState 0x20)){#} # отслеживаем нажатие пробела
    msg_box "Нажат пробел" # действия таймера
    log "ПРОБЕЛ" # действия таймера
    }
    "@
    500 # интервал выполнения 500 ms
    ### Основной поток
    while((on)){#}
    log ("Я просто считаю: "+$i++) # действия основного потока
    sleep -m 450 # действия основного потока
    }
    #
    ]]})
  2. Повысил скорость общения uopilot и luaposh в 350 раз.

  3. Так как на форуме много раз поднималась тема защиты кода, сделал возможность шифрования скрипта. Кто планирует передавать свой скрипт, но хочет избежать копирования - обращайтесь. Скрипт будет запускаться только у того, у кого вы захотите.
    Поддерживаемые языки: Lua , LuaPosh.

  4. Проверить текущую версию:
    --lua
    log"clear";log"mode compact";require"luaposh"
    PScode('void',{[[version]]})

  5. Перезапустить LuaPosh:
    --lua
    require"luaposh"
    lp_restart
    ()
Обновление можно установить через апдейт. Если у кого возникнут сложности с апдейтом, в первый пост прикрепил архив.

Сообщение отредактировал Fors1k - 11.1.2021, 23:55


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 15.7.2020, 15:13
Сообщение #30


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Prompt с возможностью выбора вариантов.

Прикрепленное изображение
Совет:
check_prompt ("Вариант 1", "Вариант 2") "Подсказка"(необязательно)

Начнем со скучного примера, где мы сами задаем варианты, и не требуется использовать подсказку:
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$a = 1

$b = 2

$c = 7 + ( check_prompt ($a,$b) )
log $c
#
]]})


В этом примере нам пригодится возможность вывода подсказки перед запросом выбора.
Задача: Если получаем число меньше 50, то сохраним его в один файл, если больше 50, то в другой.
--lua
log "clear";log"mode compact";require "luaposh"
PScode('r',{[[#}
#
$path1 = "C:\маленькие числа.txt"

$path2 = "C:\большие числа.txt"

$number = Get-Random 100

$number|out-file (check_prompt ($path1, $path2) "Получилось число $number`. Куда его сохраним?")
#
]]})


Переходим к самому интересному примеру из представленных, в котором мы не будем сами задавать варианты выбора.
Задача: посмотреть список процессов, запущенных от имени какого-либо пользователя.
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$proc = Get-Process -IncludeUserName

$user = $proc.username|Sort-Object -Unique
$uProc = $proc|Where-Object username -eq (check_prompt $user "Выберите пользователя:")|ft -a
log $uProc
#
]]})

Если у кого-то будут еще идеи как можно интересно использовать такого вида prompt, то присылайте ваш код ниже, будет интересно посмотреть.

Сообщение отредактировал Fors1k - 12.1.2021, 2:01


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.9.2020, 8:51
Сообщение #31


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Скорость работы этой либы отличается от скорости запуска PowerShell? Прошу понять правильно, просто зачастую я быстрее руками что-то сделаю, чем ждать запуска этой наковальни (IMG:style_emoticons/default/smile.gif)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 20.9.2020, 11:40
Сообщение #32


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Долго первый запуск, потом нормально.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 21.9.2020, 18:47
Сообщение #33


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



У меня старт занимает 1.73 сек. Поработаю еще над скоростью запуска.

Сообщение отредактировал Fors1k - 10.1.2021, 3:24


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 28.9.2020, 1:33
Сообщение #34


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



LuaPosh V6

Диалоговое окно выбора файла.
Прикрепленное изображение

Прочитать файл, выбрав его в окне:
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$filePath = ShowDialog-FilePath

log $filePath
$data = Get-Content $filePath -Encoding UTF8
log $data
#
]]})


Диалоговое окно выбора папки.
Прикрепленное изображение

Удалить папку, выбрав её в окне:
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$folderPath = ShowDialog-FolderPath 'Что будем удалять?'

log $folderPath
Remove-Item $folderPath
#
]]})
Второй параметр-подсказка необязательный.


Синхронизация локальной папки с FTP.
Обновляет имеющиеся файлы.
Загружает отсутствующие.



Пример:
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$FtpPath = 'ftp://my.ftpurl.ru/docs/'
$LocalPath = 'C:\files\docs\'
$FtpLogin = 'john77'
$FtpPass = 'qwe123'

$Result = Sync-FtpFolder $ftpPath $localPath $FtpLogin $FtpPass
log $Result
#
]]})
Параметры $FtpLogin и $FtpPass не требуются, если сервер имеет открытый доступ.

Результат в логе:
Код
[1/3]scan.png
Files identical

[2/3]document.docx
FTP file newer
Downloaded

[3/3]test.txt
FTP file older
Uploaded


Сообщение отредактировал Fors1k - 12.1.2021, 0:02


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 9.10.2020, 17:52
Сообщение #35


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



LuaPosh V7

Экранная лупа
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$color = Show-ScreenMagnifier

log $color
#
]]})
Верхний статус-бар отображает: цвет|координаты|масштаб.
Нижний статус-бар показывает цвет, который был определен под курсором.

Использование:
num+ = увеличить масштаб
num- = уменьшить масштаб
num0 = сбросить масштаб


Когда курсор наведен на нужный цвет, нажмите Esc. Лупа закроется, выбранный цвет будет записан в переменную.

Демонстрация:Прикрепленное изображение

Проверка ссылки на наличие вирусов:
--lua
log "clear";log"mode compact";require "luaposh"
PScode('return',{[[#}
#
$result = Check-UrlVirus yandex.ru

log $result
#
]]})



Сообщение отредактировал Fors1k - 11.4.2021, 12:39


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 14.10.2020, 15:40
Сообщение #36


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Добавлены параметры для экранной лупы.


-freezScreen
Замораживает экран. Пригодится если цвет, который вы хотите определить, меняется при наведении курсора.

-Clipboard
Выбранный цвет будет занесен в буфер обмена.

-rgb или -dec (без параметра будет Hex)
Задает формат определяемого цвета.


Сообщение отредактировал Fors1k - 14.10.2020, 15:59


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 18.10.2020, 20:38
Сообщение #37


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Поколдовал над запуском.
--lua
log "clear";log "mode compact";require"luaposh"
begin = os.clock()
PScode('return',{[[#}
#
log "Started"
#
]]})
finish = os.clock() - begin
log(finish)

На железе поколения DDR2 / Core 2 * результат 0.751. Полагаю, на всяких Core i* будет много быстрее.

Сообщение отредактировал Fors1k - 12.1.2021, 20:03


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 22.12.2020, 0:33
Сообщение #38


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(DarkMaster @ 3.10.2020, 18:20) *
Лично у меня пош стартует около 15 секунд.
Всё, наконец-то я с этим разобрался (IMG:style_emoticons/default/smile.gif)

Выполняем один раз
--lua
require "luaposh"
PScode('void',{[[Install]]})
отныне пош будет стартовать мгновенно.

--lua
log "clear";log "mode compact";require"luaposh"
begin = os.clock()
PScode('return',{[[#}
#
log "Started"
#
]]})
finish = os.clock() - begin
log(finish)

Результат 0.341 (IMG:style_emoticons/default/shtanga.gif)

Спасибо за настойчивость в данном вопросе, это подтолкнуло меня дожать эту тему (IMG:style_emoticons/default/wink.gif)

Сообщение отредактировал Fors1k - 12.1.2021, 20:03


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.12.2020, 15:17
Сообщение #39


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



LuaPosh V8

Selenium
Установка:
--lua
require"luaposh";log "clear";log "mode compact"
PScode('return',{[[#}
#
Install-Selenium

log
#
]]})
Пример задачи:
  1. Открыть яндекс
  2. Найти вики пилота
  3. Открыть вики
  4. Открыть страницу функции Exec
  5. Показать в логе описание функции
code
--lua
require"luaposh";log "clear";log "mode compact"
PScode('return',{[[#}
#
Start-Selenium

$luaFunction = 'Exec (Lua)'

$Chrome = Start-SeChrome
$Chrome.Url = 'https://ya.ru'
sleep 1
$Chrome.FindElementByName('text').SendKeys('uopilot')
sleep 1
$Chrome.FindElementByClassName('search2__button').click()
sleep 2
$Chrome.FindElementByPartialLinkText('uokit').click()
sleep 1
[void]$Chrome.SwitchTo().Window($Chrome.WindowHandles[1])
$Chrome.FindElementById('searchInput').SendKeys($luaFunction)
sleep 1
$Chrome.FindElementByName('go').click()
$description = $chrome.FindElementsByTagName('p')[0].text
log $description
#
]]})
демонстрация
Прикрепленное изображение
Слипы добавлены просто для возможности понаблюдать за происходящим.
Результат в логе:
Цитата
exec - запуск внешнего приложения. Не приостанавливает скрипт на время работы приложения. Для ожидания завершения используйте ExecAndWait (Lua). UoPilot запускать от администратора.

Для примера выше должен быть установлен Chrome browser.
Пишите, если что-то не будет работать. Буду исправлять.
Все его возможности пока не знаю, так что описывайте вашу задачу, постараюсь дать решение.


Сообщение отредактировал Fors1k - 11.4.2021, 12:40


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 2.2.2021, 18:46
Сообщение #40


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Тернарный оператор.
Синтаксис сделал обычный: boolean |?? если истина : если ложь

Если на часах 11 вечера, то пора идти спать:
--lua
log"clear";log"mode compact";require"luaposh"
PScode('return',{[[#}
#
$time = (Get-Date).Hour -eq 23 |?? "Пора спать" : "Еще не ночь"
log $time
#
]]})

В зависимости от времени суток будет запущено приложение:
--lua
log"clear";log"mode compact";require"luaposh"
PScode('void',{[[#}
#
(Get-Date).Hour -eq 23 |?? {Start "Calc"} : {Start "Notepad"}
#
]]})


Сообщение отредактировал Fors1k - 3.2.2021, 13:40


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

3 страниц V < 1 2 3 >
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 2:47
Designed by Nickostyle