VBScript в пакетном режиме - PullRequest
       45

VBScript в пакетном режиме

1 голос
/ 15 октября 2019
<job>
<script language="VBScript">
Option Explicit
On Error Resume Next
Dim WshShell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"
WScript.Sleep 1000
WshShell.SendKeys "telnet 174.24.2.155 23"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 5000
WshShell.SendKeys "User + {Enter}"
WScript.Sleep 5000
WshShell.SendKeys "User + {Enter}"
WScript.Sleep 4000
WshShell.SendKeys "Password"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 4000
WshShell.SendKeys "ACCT# + {Enter}"
WScript.Sleep 4000
WshShell.SendKeys "DBSPROCB + {Enter}"
WScript.Sleep 4000
WshShell.SendKeys "SUB + {Enter}"
WScript.Sleep 4000
WshShell.SendKeys "User.RUN.TEST1 + {Enter}"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 4000
WshShell.SendKeys "logoff + {Enter}"
WScript.Sleep 5000
WshShell.SendKeys "exit"
WshShell.SendKeys ("{Enter}")
WScript.Quit 
</script>
</job>

После отправки пакетного задания User.RUN.TEST1 из этого VBscript мы получим сообщение, которое заполняется системой. Сообщение «Пакет успешно отправлен». Я хотел бы перехватить это сообщение в своем сценарии и отобразить его с помощью Wscript.echo, поэтому кто-нибудь может мне помочь в этом?

1 Ответ

1 голос
/ 15 октября 2019

Вы можете использовать stdout.ReadLine:

Dim objShell
Dim objExec
Dim strFromProc
Dim strOutput

Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("cmd.exe /c dir")

' Read output line by line
Do While Not objExec.Stdout.atEndOfStream
    strFromProc = objExec.StdOut.ReadLine()
    strOutput = strOutput & vbCrLf & strFromProc
Loop 

WScript.Echo "Output: " & strOutput
...