Это пример кода VBScript, который показывает, как поймать то, что программа командной строки отправляет на стандартный вывод.
Он выполняет команду xcopy /?
и отображает вывод в окне сообщения. Прежде чем появится окно сообщения, в течение секунды вы увидите всплывающее окно консоли.
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("xcopy /?")
Do
line = objExec.StdOut.ReadLine()
s = s & line & vbcrlf
Loop While Not objExec.Stdout.atEndOfStream
WScript.Echo s
Вот еще один пример кода VBScript, в котором показано, как выполнить script, не показывая окно консоли.
objShell.Run "c:\temp\mybatch.bat C:\WINDOWS\system32\cmd.exe", 0
или
objShell.Run "c:\temp\myscript.vbs C:\WINDOWS\system32\cscript.exe", 0
Как видите, он имеет форму <script><space><executor>
.
В последнем примере вместо objShell.Exec
objShell.Run
Я не знаю, как выполнить программу командной строки (если необходимо из пакетного файла), получить стандартный вывод, не показывая окно консоли. Любые идеи?