开发者社区> 问答> 正文

SecureCRT关于VBS脚本的字符串丢失问题:报错

为了工作方便,自己学写了一段VBS脚本,用于配置设备参数。使用了字符串的读取和发送函数。
逐行读取,依次发送。我的脚本对于行数少于28行的文本,执行和处理都没有多大问题。
但是只要单个文本大于28行,就会再发送28行或29行时,出现丢行或字符混乱现象。
如,在发送第28行时,明明文本中是“OFF”,却发送的“0”或者其他,或丢失之后的其他行字符串,出现卡死在那里的现象。
请高手指教一二!不胜感谢! 
以下是脚本!
=========================================
# $language = "VBScript"
# $interface = "1.0"
crt.Screen.Synchronous = False
DIM StrPath,Line,YA,TEXT
Dim Count:NAME = 0
Sub main
Const WINDOW_HANDLE = 0
Const OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder (WINDOW_HANDLE, "选择上传文件所在目录:"& vbcr &" ",OPTIONS,"D:\SelControl\Setting\")
Set objFolderItem = objFolder.Self
StrPath = objFolderItem.Path
If objFolder Is Nothing Then
Exit Sub
End IF
Do While NAME <> 20
NAME = NAME + 1
TEXT = StrPath & "\" & NAME & ".txt"
set FS =createobject ("scripting.filesystemobject")
IF FS.FileExists (TEXT) Then
Set TS = FS.opentextfile (TEXT,1,False)
Do while TS.atendofstream <> true
Line = TS.readline
crt.Screen.Send Line & vbcr
YA = crt.Screen.WaitForStrings ("?","","=>>")
IF YA = 1 OR 2 Then
IF TS.atendofstream = true then
Exit DO
End IF
ElseIF YA = 3 Then
Exit DO
End IF
Loop
IF NAME = 20 Then
Exit Do
End IF
ElseIF Not FS.FileExists (TEXT) Then
MSGBOX "发送完毕,请等待执行结束!"
Exit DO
End IF
Loop
End Sub

    展开
    收起
    kun坤 2020-06-07 16:48:30 834 0
    1 条回答
    写回答
    取消 提交回答
    • 有高手没?出来帮助一下啊!谢谢了!

      注:您不嫌弃此脚本有点小问题,就尽管拿!索取了就该有有回报!

      ######

      没有高手愿意帮忙吗?谢谢出手帮助一下小弟啊!!!!

      2020-06-07 16:48:36
      赞同 展开评论 打赏
    问答地址:
    问答排行榜
    最热
    最新

    相关电子书

    更多
    低代码开发师(初级)实战教程 立即下载
    冬季实战营第三期:MySQL数据库进阶实战 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载