当前位置:   article > 正文

基于xsh的vbs脚本的使用(语法)_vbs脚本中 esc键是chr()

vbs脚本中 esc键是chr()

一. chr(number)含义

chr(number) 对应列表链接:chr码值对应列表大全_conger3400的博客-CSDN博客

常用举例:

        chr(3):Ctrl+C/退出等待某个执行命令

        chr(4):Ctrl+D/退出会话

        chr(8):del回退删除一个字符

        chr(9):tab键

二. 注释

REM(rem) message1

' message2

REM和' 之后的内容为被注释内容

三. 变量

  1. Sub Main
  2. xsh.Screen.Synchronous = true
  3. rem 定义1个变量
  4. dim x1
  5. ' error: dim x1 = -1
  6. ' ok: Dim x1:x1 = 5
  7. rem 定义多个变量
  8. dim x2,x3,x4,x5,x6,x7,x8,x9
  9. rem 1个变量赋值
  10. x1 = -1
  11. ' 能够正确打印值
  12. ' 语音分析:即使-1非string,参数只有变量时,不管参数哪种类型,均按string处理:"-1"
  13. xsh.Dialog.MsgBox(x1) ' -1
  14. ' error: 类型不匹配 [string :x1];
  15. ' 原因分析:xsh.Dialog.MsgBox(参数),参数为字符串类型,"x1=" 已经设定参数x1为string,若x1非string即error
  16. ' xsh.Dialog.MsgBox("x1=" + x1) ' error
  17. rem 多个变量赋值
  18. x2=0:x3=1:x4=3.14 ' :冒号前后有无空格均可以
  19. xsh.Dialog.MsgBox(x3) ' 按 "1" 处理 1
  20. xsh.Dialog.MsgBox(x4) ' 按 "3.14" 处理 3.14
  21. x5=false : x6=true : x7="true" : x8="false" : x9="9.18171666666"
  22. xsh.Dialog.MsgBox(x5) ' 0
  23. xsh.Dialog.MsgBox(x6) ' 1
  24. rem 类型转换 => int
  25. xsh.Dialog.MsgBox(cint(x4)) ' 即使按string打印,打其值3 说明已经转换 3
  26. xsh.Dialog.MsgBox(cint(x9)) ' 9
  27. rem 类型转换 => string
  28. xsh.Dialog.MsgBox(cstr(x1)) ' -1
  29. xsh.Dialog.MsgBox(cstr(x5)) ' False
  30. xsh.Dialog.MsgBox(cstr(x6)) ' True
  31. rem 类型转换 => float
  32. xsh.Dialog.MsgBox(ccur(x9)) ' 请注意,此函数会把结果四舍五入为4位的小数。 9.1817
  33. xsh.Dialog.MsgBox(csng(x9)) ' 请注意,此函数会把结果四舍五入为6位的小数 9.181717
  34. End Sub

 四. 循环

  1. Sub Main
  2. xsh.Screen.Synchronous = true
  3. rem For 语句规定计数变量以及它的开始值和结束值; Next 语句会以 1 作为步进值来递增变量i
  4. rem (每次VB执行循环里的语句后,变量计数器的值会默认地增加1
  5. ' For counter = start To end [Step step]
  6. ' [statements]
  7. ' [Exit For]
  8. ' [statements]
  9. ' Next
  10. ' 主要参数:
  11. ' counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
  12. ' start:counter的初值。
  13. ' end:counter的终值。
  14. ' step:counter的步长。如果没有指定,则step的默认值为1。
  15. For i=1 to 10
  16. ' xsh.Dialog.MsgBox(i)
  17. Next
  18. ' 通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值。
  19. For i=2 To 10 Step 2
  20. 'xsh.Dialog.MsgBox(i)
  21. Next
  22. ' 如果要递减计数变量,就必须负的步进值。并且需要规定小于开始值的结束值。
  23. For i=10 To 2 Step -2
  24. xsh.Dialog.MsgBox(i)
  25. Next
  26. rem Do 循环: 当(或直到)条件为True时循环
  27. ' 当条件为True时重复执行某语句块
  28. ' Do [{While | Until} condition]
  29. ' [statements]
  30. ' [Exit Do]
  31. ' [statements]
  32. ' Loop
  33. ' 当条件变为True之前重复执行某语句块
  34. ' Do
  35. ' [statements]
  36. ' [Exit Do]
  37. ' [statements]
  38. ' Loop [{While | Until} condition]
  39. ' 主要参数:
  40. ' condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False
  41. ' statements:当condition为True时被重复执行的一条或多条命令
  42. ' Exit Do 语句用于退出 Do...Loop 循环。
  43. dim Count
  44. Count = 5 '定义一个变量
  45. do
  46. xsh.Dialog.MsgBox(Count)
  47. Count = Count -1
  48. Loop While Count <> 0 '当Count变量为0时,停止循环; While <>
  49. dim i:i = 5
  50. Do
  51. xsh.Dialog.MsgBox(i)
  52. i = i -1
  53. Loop Until i = 0 '直到Count变量为0时,否则一直循环; Until =
  54. End Sub

五. Sleep函数
        xsh.Session.Sleep(num)
        num:毫秒 

六. 注意事项

1)断开连接后,需要sleep才能执行后续命令
        xsh.Screen.Send("ssh 192.169.11.1" + "\n")    //命令1
        xsh.Screen.WaitForString("# ")            
        xsh.Screen.Send(chr(4))                        
        xsh.Session.Sleep(500)                        //sleep
        xsh.Screen.Send("iperf3.exe -c 192.168.10.160" + "\n")    //后续命令

2)脚本中一些匹配字段,若与实际不匹配,会一直wait,不会向下执行,脚本也不会主动退出
        例如:telnet登录,cnPilot-R195P 字段若不匹配,会一直wait,不会执行(2)
        (1)xsh.Screen.WaitForString("cnPilot-R195P login: ")
        (2)xsh.Screen.Send("admin")

3)WaitForStrings函数返回值和timeout参数均无效
        result = xsh.Screen.WaitForStrings("cnPilot-R195P login: ", 1000)
        result不是返回字符串长度(不管正误,实际打印为1)
        timeout并不会延时等待,只不过不会像WaitForString一样一直等,会继续向下执行

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号