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

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

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

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

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

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

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

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

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


мне теперь нужно сделать так, чтобы ПОСЛЕ запуска приложение
запустить команду status
...
Рейтинг: 0 / 0
script для извлечения данных с cmd консоли другого приложения
    #35972356
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из 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
script для извлечения данных с cmd консоли другого приложения
    #35972464
gjkmpjdfntkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF,

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

нашел, спасибо. смотрю
...
Рейтинг: 0 / 0
script для извлечения данных с cmd консоли другого приложения
    #35972653
gjkmpjdfntkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
script для извлечения данных с cmd консоли другого приложения
    #35972854
gjkmpjdfntkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
script для извлечения данных с cmd консоли другого приложения
    #35976545
gjkmpjdfntkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gjkmpjdfntkm,

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

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

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


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