Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / script для извлечения данных с cmd консоли другого приложения / 14 сообщений из 14, страница 1 из 1
29.04.2009, 17:24
    #35961625
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
Добрый день, имеется приложение, которое запускается с CMD
opctest
После чего, в окне приложения я должен ввести команду status
которая выводит определенную информацию.

Мне нужно "выбрать" весь текст с CMD консоли после команды status и скопировать его, например, в txt файл

Как это возможно?
Обычным batch файлом это не получается. Возможно, VBScript?
...
Рейтинг: 0 / 0
30.04.2009, 17:33
    #35963963
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
gjkmpjdfntkm,

up
...
Рейтинг: 0 / 0
30.04.2009, 17:51
    #35963991
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
Зависит от того как opctest рисует свой вывод на экран. Если через stdout, то можно просто opctest.exe >result.txt
Если перенаправлением потоков не получается, то возможно что opctest работает напрямую через видеопамять. Тогда прийдется использовать функции работы с консолью: http://msdn.microsoft.com/en-us/library/ms682073.aspx
...
Рейтинг: 0 / 0
06.05.2009, 15:21
    #35972130
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
White Owl,

Для меня основная задача стоит в том, что бы
1)запустить приложение в cmd> opctest.exe
2)в самом приложении ввести фразу opctest: status

Как это сделать пока не нашел, но лучшим кандидатом видеться VBS
...
Рейтинг: 0 / 0
06.05.2009, 15:29
    #35972162
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
CreateProcess (с его StdOut, StdIn, StdErr) или для ленивых Exec method (опять же с его StdOut, StdIn, StdErr) - пример есть в Help-e.
...
Рейтинг: 0 / 0
06.05.2009, 15:49
    #35972239
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
AndrF,

Уж извините за наглость, а пример можно?

Вот пример для запуска приложение

Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("opctest")
Set objStdOut = objWshScriptExec.StdOut
strOutput = objStdOut.ReadAll
WScript.Echo strOutput


мне теперь нужно сделать так, чтобы ПОСЛЕ запуска приложение
запустить команду status
...
Рейтинг: 0 / 0
06.05.2009, 16:14
    #35972356
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
Из Help-a:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Dim WshShell, oExec, input
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("test.bat")
input = ""

Do While True

     If Not oExec.StdOut.AtEndOfStream Then
          input = input & oExec.StdOut.Read( 1 )
          If InStr(input, "Press any key") <>  0  Then Exit Do
     End If
     WScript.Sleep  100 
Loop

oExec.StdIn.Write VbCrLf

Do While oExec.Status <>  1 
     WScript.Sleep  100 
Loop
[JScript] 
var WshShell = new ActiveXObject("WScript.Shell");
var oExec    = WshShell.Exec("test.bat");
var input = "";

while (true)
{
     if (!oExec.StdOut.AtEndOfStream)
     {
          input += oExec.StdOut.Read( 1 );
          if (input.indexOf("Press any key") != - 1 )
               break;
     }
     WScript.Sleep( 100 );
}

oExec.StdIn.Write("\n");

while (oExec.Status !=  1 )
     WScript.Sleep( 100 );
...
Рейтинг: 0 / 0
06.05.2009, 16:42
    #35972464
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
AndrF,

а ссылочку на столь известный Help можно?
...
Рейтинг: 0 / 0
06.05.2009, 16:50
    #35972506
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
gjkmpjdfntkm,

нашел, спасибо. смотрю
...
Рейтинг: 0 / 0
06.05.2009, 17:23
    #35972653
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
AndrF,

Но принцип работы этого скрипта другой..он ослеживает Press any key, если я хочу послать команду в приложение , то так получается? :

авторDim WshShell, oExec, input
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("telnet.exe")
input = "st"
Do While True
If Not oExec.StdOut.AtEndOfStream Then
input = input & oExec.StdOut.Read(1)
If InStr(input) <> 0 Then Exit Do
End If
WScript.Sleep 10
Loop
oExec.StdIn.Write "st" & VbCrLf
Do While oExec.Status <> 1
WScript.Sleep 10
Loop
...
Рейтинг: 0 / 0
06.05.2009, 18:33
    #35972854
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
gjkmpjdfntkm,

Сделал, заработало

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "opctest test"
Do Until Success = True
Success = objShell.AppActivate("opctest test")
Wscript.Sleep 10
Loop
objShell.SendKeys "status {ENTER}"

Но теперь нужно результат с cmd перенаправить в файл, как это сделать?
...
Рейтинг: 0 / 0
08.05.2009, 12:50
    #35976545
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
gjkmpjdfntkm,

up
...
Рейтинг: 0 / 0
12.05.2009, 11:26
    #35979959
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
gjkmpjdfntkm,

up
...
Рейтинг: 0 / 0
12.05.2009, 18:01
    #35981351
gjkmpjdfntkm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
script для извлечения данных с cmd консоли другого приложения
gjkmpjdfntkm,

фишка в том, что нужно достать данные с приложение opctest а не с cmd...
пока никак не получается... (
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / script для извлечения данных с cmd консоли другого приложения / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]