Script для извлечения данных с cmd консоли другого приложения - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день, имеется приложение, которое запускается с CMD

opctest


После чего, в окне приложения я должен ввести команду

status


которая выводит определенную информацию.
Мне нужно "выбрать" весь текст с CMD консоли после команды

status

и скопировать его, например, в txt файл
Как это возможно?
Обычным batch файлом это не получается. Возможно, VBScript?

Решение задачи: «Script для извлечения данных с cmd консоли другого приложения»

textual
Листинг программы
<font color="blue">Dim</font> WshShell, oExec, <font color="blue">input</font>
<font color="blue">Set</font> WshShell = CreateObject(<font color="teal">"WScript.Shell"</font>)
<font color="blue">Set</font> oExec    = WshShell.Exec(<font color="teal">"test.bat"</font>)
<font color="blue">input</font> = <font color="teal">""</font>

<font color="blue">Do</font> <font color="blue">While</font> True

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

oExec.StdIn.<font color="blue">Write</font> VbCrLf

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

<font color="blue">while</font> (true)
{
     <font color="blue">if</font> (!oExec.StdOut.AtEndOfStream)
     {
          <font color="blue">input</font> += oExec.StdOut.Read(<font color="darkblue"><b>1</b></font>);
          <font color="blue">if</font> (<font color="blue">input</font>.indexOf(<font color="teal">"Press any key"</font>) != -<font color="darkblue"><b>1</b></font>)
               break;
     }
     WScript.Sleep(<font color="darkblue"><b>100</b></font>);
}

oExec.StdIn.<font color="blue">Write</font>(<font color="teal">"\n"</font>);

<font color="blue">while</font> (oExec.Status != <font color="darkblue"><b>1</b></font>)
     WScript.Sleep(<font color="darkblue"><b>100</b></font>);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы