标题:关于vbs的一个求教
取消只看楼主
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
结帖率:100%
已结贴  问题点数:20 回复次数:9 
关于vbs的一个求教
这是一个登陆电信机房OLT,准备给新装光纤猫做数据在一小段程序,就是自动登陆后,第一个命令有时运行时间太长,所以第二个命令就不完整了,就是想在第一个命令运行完等1、2秒,再运行第二个命令。第一个命令是:display ont autofind  all 第二个命令是:interface gpon 0/,以下是原程序
# $language = "VBScript"
# $interface = "1.0"
Sub Main
crt.screen.WaitForString "User name:",10
crt.screen.send "root"
crt.screen.send Chr(13)
crt.screen.WaitForString "User password:",10
crt.screen.send "admin"
crt.screen.send Chr(13)
crt.screen.send "enable"
crt.screen.send Chr(13)
crt.screen.send "config"
crt.screen.send Chr(13)
crt.screen.send "display ont autofind  all"
crt.screen.send Chr(13)
crt.screen.send "interface gpon 0/"
End Sub
搜索更多相关主题的帖子: interface password 电信机房 display admin 
2015-03-01 16:51
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
回复 2楼 lianyicq
我加上试一了下,不行呀,倒是不提示出错,但是哪个延迟命令不在第一条命令后面延迟,跑到输完用户名(Username:zte)后面延迟了,后面是要输入密码Password:,快成功了,再帮我一下
2015-03-04 16:44
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
因为我有几个模板,上面说的在输完用户名要输入密码之间延迟了,就是在输完:User name:root 之后,要运行User password:的时候延迟了,咋么回这样
2015-03-04 16:54
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
是不是就加了一条命令:crt.screen.Synchronous = True  是这样吗,我加上了,在再的机房是在输完用户名之后要输密码的时候延迟了,但是在我发的这个程序也就是我要登陆的这个机房是在输完用户名和输完密码后,要进入机房设备的时候延迟了
2015-03-05 14:20
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
版主你好,感谢你能关注的我的帖子,我对编程不懂,我的这个编程也是从网上搜出来的,稍做修改就用了,因为如果同时发现一二个猫要做数据,还能用,如果发现3个以上,第一条命令就运行的时间长,第二条命令也就同时运行了,这样第二条命令就出错了,以下是我的原程序:
# $language = "VBScript"
# $interface = "1.0"
Sub Main
crt.screen.WaitForString "Username:",10
crt.screen.send "zte"
crt.screen.send Chr(13)
crt.screen.WaitForString "Password:",10
crt.screen.send "zte"
crt.screen.send Chr(13)
crt.screen.send "show onu unauthentication"
crt.screen.send Chr(13)
crt.screen.send "show onu all-status epon-olt_1/"
End Sub
根据你发的程序,是把回车符直接加到命令后面了,效果是一样的,我也修改了一下,测试了,没有区别,我也附在下面
# $language = "VBScript"
# $interface = "1.0"
Sub Main
crt.screen.Synchronous = True
crt.screen.WaitForString "Username:",10
crt.screen.send "zte"& Chr(13)
crt.screen.WaitForString "Password:",10
crt.screen.send "zte"& Chr(13)
crt.screen.send "show onu unauthentication"& Chr(13)
crt.screen.send "show onu all-status epon-olt_1/"
End Sub
关于你说的加sleep,我不懂格式,都在哪个命令后面加,sleep 前面加标点符号吗,我不太懂,麻烦版主能加到程序里面,加好一起发出来,我以前只学过basic,
2015-03-06 10:44
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
因为你哪边没有测试条件,我把用这个脚本进入到机房的界面复制下来,附在下面
************************************************
Welcome to ZXAN product C300 of ZTE Corporation
************************************************

Username:zte
Password:
XunHe-C300#show onu unauthentication
                     
Onu Interface    :   epon-onu_1/2/3:1
Onu Model        :   ZTE-F407
MAC Address      :   e477.2377.4754
SN               :   
LOID             :   
LOID_PSW         :   
Online State     :   authentication deny
ExtOam State     :   complete
Software Version :   V1.30.00P2T4H
Hardware Version :   V3.0
RegTime          :   2015/02/15 22:47:19      
 
XunHe-C300#show onu all-status epon-olt_1/
第一个命令是自动发现未注册的猫,第二个命令是显示某一个口下面所有的光猫,一个口可以带64个猫,因为不知道这个猫在几槽几口,所以第二个命令后面是空的,要根据第一个命令显示出来的结果来判断,第一条命令执行的结果是:发现一个未注册的光猫在1架2槽3口也就是epon-onu_1/2/3,所以第二条命令后面也要输入epon-onu_1/2/3,还有一个问题就是能不能实现利用编程来让电脑判断这个猫是在epon-onu_1/2/3,然后让程序直接输到第二条命令里,再让电脑自动执行,现在的情况是我从第一条命令判断出来,手动输到第二条命令后面,再执行,我按你说的利用屏幕返回字把crt.screen.WaitForString "XunHe-C300#"加上了,运行不出错,因为大部分情况是每发现一个就做一个,所以同时出现几个的情况还没有出现,等出现了我再试一下,如果是这样,我就得建七八个这样的程序文件,因为每一个机房进入的命令是一样的,执行的命令也是一样的,以前我七八个机房就调用一个文件就行了,如果按版主所说,我就得建七八个,因为每个命令输入前的状态是是按每个机房命名的,每个机房都不一样,就因为这一点不同就会建七八个,不知道我这样说,你能明白吗
2015-03-06 21:11
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
wscript.sleep 2000 这个命令我也试过了,出错,提示缺少对像
2015-03-06 21:45
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
我还是先按第一种办法来,是不是就是在第一条命令后面加上:crt.screen.WaitForString "#"  我加上了,测试不出错,因为每次发现一个就做掉了,同时发现几个的情况还没有出现,待以后验证,第二种办法,因为我不没有编程基础,不太会弄,先放着.自动加架槽口,我也不会弄,没学过编程,高中的时候学过一点basic,先这样吧
2015-03-07 13:12
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
版主,我按你说的按第二种方法也成功运行了,以前我用的是两个程序,因为中兴OLT分两种,一种C220 是从0架开始,一种C300,从1架开始,不过进入方式和运行命令是一样的,就是架不一样,现在按第二种 方法只要一个程序就全部能运行了,现在这边中兴的设备有13个,也就是目 前有十三个机房就调用一个程序就可以都运行了,谢谢你,就是自动输入架槽口,因为我没有基础,如果要用,还得一段相当长的时候学习编程
2015-03-07 14:29
汪中华
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-3-1
得分:0 
补充一点,你发的程序里:case=1  case=2 ..... 不能输"=" ,会出错的,只能输成  case   1       case  2  这样就能运行了,中间加空格,不能加等号
 
2015-03-07 14:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442284-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.252705 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved