Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как получить данные в скрипт из командной строки?

Ответить
Настройки темы
[решено] Как получить данные в скрипт из командной строки?

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353


Конфигурация

Профиль | Отправить PM | Цитировать


Подскажите, пожалуйста.
Я определяю какой USB модем подключен к компу так:
Цитата:
$mod=Run(@ComSpec&' /c devcon hwids USB\VID_0915*&pause', '', @SW_SHOW)
Выводится окно ком. строки, на котором есть все нужные мне данные. Но как их прочитать для дальнейшего использования? Перелопатил справку, вроде есть функция StdoutRead(), но она у меня ничего не читает. Я пробовал так:
Цитата:
$mod=Run(@ComSpec&' /c devcon hwids USB\VID_0915*&pause', '', @SW_SHOW)
$mode=StdoutRead($mod)
FileWrite("Log.txt", $mode&@LF)
Но так в файл Log.txt ничего не записывает. Что я неправильно делаю?

PS
"pause" и "@SW_SHOW" временно, чтобы видеть, что происходит.

Отправлено: 11:41, 27-11-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата madmasles:
Перелопатил справку, вроде есть функция StdoutRead(), но она у меня ничего не читает. »
А что в справке к этой функций написано? разве там нет примера использования?

Код: Выделить весь код
#include <Constants.au3>

$iDevCon_PID = Run(@ComSpec & ' /c devcon hwids USB\VID_0915* & pause', '', @SW_SHOW, $STDERR_CHILD + $STDOUT_CHILD)

$sStdOutRead = ""
$sStdErrRead = ""

While 1
    $sStdOutRead &= StdoutRead($iDevCon_PID)
    If @error Then ExitLoop
WEnd

While 1
    $sStdErrRead &= StderrRead($iDevCon_PID)
    If @error Then ExitLoop
WEnd

MsgBox(64, 'StdoutRead', $sStdOutRead)
MsgBox(64, 'StderrRead', $sStdErrRead)

FileWriteLine("Log.txt", $sStdOutRead)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:40, 27-11-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


madmasles,
а что требуется? просто записать в файл? тогда можно перенаправить поток на файл. типа так
Код: Выделить весь код
Run(@ComSpec&' /c devcon hwids USB\VID_0915 > d:\1.txt') ; Тогда все содержимое консоли будет в файла d:\1.txt (правда могут быть глюки с кодировкой, если винда русская)
Если же, необходимо держать в памяти определенные параметры, для дальнейшего использования, то надо считать с консоли средствами AutoIt
Код: Выделить весь код
#include <Constants.au3>
$mod=Run(@ComSpec&' /c devcon hwids USB\VID_0915', '', @SW_HIDE, $STDOUT_CHILD); Последний параметр определяет, что нужно мониторить STDOUT
While 1
    $line = StdoutRead($mod)
    If @error Then ExitLoop
Wend
FileWrite("Log.txt", $line & @CRLF)
тут основной акцент не на то, что получаем тоже самое - содержимое консоли в файле, а то, что правильно считываем саму консоль, а что делать дальше - на твое усмотрение. пиши файл, парси строку, передавай функции. вобщем, что хочешь

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:50, 27-11-2009 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как получить данные в скрипт из командной строки?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как из командной строки отключить сетевое соединение? Deni P. Microsoft Windows 2000/XP 2 25-10-2009 09:23
CMD/BAT - [решено] Как в ХР включить учетку из командной строки ? mitiya Скриптовые языки администрирования Windows 5 14-09-2009 10:44
Службы - [решено] Как с командной строки отключить службу? sergey1234567 Microsoft Windows 2000/XP 9 10-02-2009 20:16
Разное - [решено] как в командной строке получить идентификатор пользователя ? mitiya Microsoft Windows 2000/XP 3 05-09-2008 00:53
[решено] Как послать сообщение залогиненным пользователям из командной строки? Dan Swano Microsoft Windows NT/2000/2003 3 01-07-2008 17:23




 
Переход