【问题标题】:VBScript in batch mode批处理模式下的 VBScript
【发布时间】:2020-02-12 02:24:12
【问题描述】:
<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>

从这个 VBscript 提交批处理作业 User.RUN.TEST1 后,我们将收到一条从系统填充的消息。消息是“批次已成功提交”。 我想在我的脚本中捕获此消息并希望使用 Wscript.echo 显示它,因此任何人都可以帮助我吗?

【问题讨论】:

    标签: cmd vbscript telnet


    【解决方案1】:

    你可以使用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
    

    【讨论】:

    • 我可以通过 jenkins 执行整个脚本吗?
    • 感谢您对我的第一次提问的回复 :-)
    • 我对 Jenkins 不熟悉,您或许可以发布一个新问题。
    • 好的,谢谢 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 2016-08-13
    • 2017-03-22
    • 1970-01-01
    • 2021-08-31
    • 2015-05-12
    相关资源
    最近更新 更多