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

yantianxiao_68 2018-05-16 04:34:52
为了工作方便,自己学写了一段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
...全文
1119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrbhaoxue 2021-07-21
  • 打赏
  • 举报
回复

crt软件选项-全局选项-常规-默认会话配置-编辑默认的设置-终端-高级里把延迟发送选项调大点,具体调多大需要自己试,直到你代码完全执行完,不过设置这个选项之后,crt刚开始光标要闪很久才执行,不知为何。

ereszsd 2019-10-09
  • 打赏
  • 举报
回复
楼主后来找到原因了吗,我也遇到这个问题了,能分享下解决方法吗?
yantianxiao_68 2018-05-22
  • 打赏
  • 举报
回复
没有高手吗?谢谢出手帮助一下小弟啊!
yantianxiao_68 2018-05-17
  • 打赏
  • 举报
回复
有高手没?出来帮助一下啊!谢谢了! 注:您不嫌弃此脚本有点小问题,就尽管拿!索取了就该有有回报!

19,610

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧