Что нового

[Данные, строки] Считать данные из командной строки

Yukka

newbie
Сообщения
3
Репутация
0
Всем привет, уважаемое сообщество!
У меня возник вопрос. Необходимо написать скрипт который бы:
[list type=decimal]
[*] открывал командную строку
[*] запускал оттуда некоторый скрипт (Send('что-то')/Send('{enter}'))
[*] считывал получившиеся данные:
а) если строка == 'значение', то ошибка
б) в остальных случаях всё нормально
[/list]

И если первые 2 пункта не вызывают трудностей, то считывание данных из cmd - уже сложнее. AutoIt Windows Info не дает нужной информации по окну.
Очень прошу помочь, или если была уже подобная тема перенаправить меня.

p.s. поиск по форуму не работал, потому и решил написать.

Заранее спасибо за внимание!
 
Автор
Yukka

Yukka

newbie
Сообщения
3
Репутация
0
Спасибо, нашел там много чего дельного! Проблема решена. Выкладываю на всякий случай получившийся скрипт, друг понадобится кому? Скрипт пингует ya.ru, после чего ищет в выведенной информации строку с текстом "ya.ru"
p.s. на основе решения опубликованного пользователем CreatoR

Код:
#include <Array.au3>
#include <Constants.au3>
#include <WinAPI.au3>

$sSearched = 'ya.ru' ; искомый текст

$i_PID = Run('Ping ya.ru' & '"', '', @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($i_PID)
$s_Read = _WinAPI_MultiByteToWideChar(StdoutRead($i_PID), 1, 0, True)
$s_Read = StringStripWS(StringRegExpReplace($s_Read, '.*((?:BUILTIN|NT AUTHORITY)\\[^\h]+)\h+', '$1'), 3)

MsgBox(64, 'Title', $s_Read)
ConsoleWrite($s_Read & @LF)

$aLines = StringSplit($s_Read, @CRLF, 1)
for $i = 1 to $aLines[0] Step +1
   if StringInStr($aLines[$i],$sSearched) Then MsgBox(0,'Found','Text' & $i & @CRLF & $aLines[$i])
Next
 
Верх