前言
在编写脚本中我们常常要解决的问题就是对屏幕内容的抓取,为了更方便的抓取屏幕内容,有时候需要抓取较多的屏幕回显信息。但是一些网络设备就会涉及需要在出现“More"。对于这个困惑我们有两种结局方法。
第一种:
对网络设备设置不页显示回访信息,一般情况下网络设备回显信息是24行,超过24行的回显信息就得通过操作键盘才能得到解决。我们可以设置网络设备的回显不分行显示来达到在读取回显信息时不耽误事有快速的获取信息。命令如下:
思科设备:
Switch>terminal length 0
华为:
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]screen-length 0
第二种:
在脚本中加入操作键盘的动作,如下面的脚本:
#$language = "VBScript"
#$interface = "1.0"
crt.Screen.Synchronous = True
crt.Screen.Send "display clock" & chr(13)
crt.Screen.Send "" & chr(32)
crt.Screen.Send "" & chr(32)
crt.Screen.WaitForString ">"
crt.Screen.Send "display device" & chr(13)
crt.Screen.Send "" & chr(32)
crt.Screen.Send "" & chr(32)
crt.Screen.WaitForString ">"
第三种:
加入操作键盘的动作这个实在是太low了,我们可以利用循环语句对回显信息进行判定,而后利用脚本语言进行重复操作。如下图脚本:
方框所示的就是VBScript语言的 do…while语言循环,利用回显信息分行显示,或者显示不全的时候会出现 ---- More ----,这时补充键盘动作即可。
VBScript代码如下:
'出现More时自动发送空格键
Do While (crt.Screen.WaitForString("More",3) =True )
crt.Screen.Send " "& chr(13)
Loop
本文完,谢谢阅读
第一次参与1024节日
余钦写于2020年10月24日