基于xsh的vbs脚本的使用(语法)

news2024/12/23 13:43:24

一. 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和' 之后的内容为被注释内容

三. 变量

Sub Main
	xsh.Screen.Synchronous = true
	rem 定义1个变量
	dim x1
	' error: dim x1 = -1
	' ok: Dim x1:x1 = 5 

	rem 定义多个变量
	dim x2,x3,x4,x5,x6,x7,x8,x9

	rem 1个变量赋值
	x1 = -1
	' 能够正确打印值
	' 语音分析:即使-1非string,参数只有变量时,不管参数哪种类型,均按string处理:"-1"
	xsh.Dialog.MsgBox(x1)	' -1
	' error: 类型不匹配 [string :x1];
	' 原因分析:xsh.Dialog.MsgBox(参数),参数为字符串类型,"x1=" 已经设定参数x1为string,若x1非string即error
	' xsh.Dialog.MsgBox("x1=" + x1)	' error
	
	rem 多个变量赋值
	x2=0:x3=1:x4=3.14	' :冒号前后有无空格均可以
	xsh.Dialog.MsgBox(x3)	' 按 "1" 处理	1
	xsh.Dialog.MsgBox(x4)	' 按 "3.14" 处理	3.14
	
	x5=false : x6=true : x7="true" : x8="false" : x9="9.18171666666"
	xsh.Dialog.MsgBox(x5)	' 0
	xsh.Dialog.MsgBox(x6)	' 1
	
	rem 类型转换 => int
	xsh.Dialog.MsgBox(cint(x4))	' 即使按string打印,打其值3 说明已经转换	3
	xsh.Dialog.MsgBox(cint(x9))	' 9

	rem 类型转换 => string
	xsh.Dialog.MsgBox(cstr(x1))		' -1
	xsh.Dialog.MsgBox(cstr(x5))		' False
	xsh.Dialog.MsgBox(cstr(x6))		' True

	rem 类型转换 => float
	xsh.Dialog.MsgBox(ccur(x9))		' 请注意,此函数会把结果四舍五入为4位的小数。	9.1817
	xsh.Dialog.MsgBox(csng(x9))		' 请注意,此函数会把结果四舍五入为6位的小数		9.181717
End Sub

 四. 循环

Sub Main
	xsh.Screen.Synchronous = true
	rem For 语句规定计数变量以及它的开始值和结束值; Next 语句会以 1 作为步进值来递增变量i
	rem (每次VB执行循环里的语句后,变量计数器的值会默认地增加1)
	' For counter = start To end [Step step]
	' 	[statements]
	' 	[Exit For]
	' 	[statements]
	' Next
	' 	主要参数:
	'	counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
	'	start:counter的初值。
	'	end:counter的终值。
	'	step:counter的步长。如果没有指定,则step的默认值为1。
	For i=1 to 10
		' xsh.Dialog.MsgBox(i)
	Next
	
	' 通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值。
	For i=2 To 10 Step 2
		'xsh.Dialog.MsgBox(i)
	Next
	
	' 如果要递减计数变量,就必须负的步进值。并且需要规定小于开始值的结束值。
	For i=10 To 2 Step -2
		xsh.Dialog.MsgBox(i)
	Next
	
	rem Do 循环: 当(或直到)条件为True时循环
	' 当条件为True时重复执行某语句块
	' Do [{While | Until} condition]
	' 	[statements]
	' 	[Exit Do]
	' 	[statements]
	' Loop
	' 当条件变为True之前重复执行某语句块
	' Do
	' 	[statements]
	' 	[Exit Do]
	' 	[statements]
	' Loop [{While | Until} condition]
	' 主要参数:
	' condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False
	' statements:当condition为True时被重复执行的一条或多条命令
	' Exit Do 语句用于退出 Do...Loop 循环。
	
	dim Count
	Count = 5 '定义一个变量
	do
		xsh.Dialog.MsgBox(Count) 
		Count = Count -1
	Loop While Count <> 0 '当Count变量为0时,停止循环; While <> 
	
	dim i:i = 5
	Do
		xsh.Dialog.MsgBox(i) 
		i = i -1
	Loop Until i = 0 '直到Count变量为0时,否则一直循环; Until =
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一样一直等,会继续向下执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络管理

文章目录 前言 网卡的存储位置&#xff08;查看网卡&#xff09; NetworkManager服务 查看网络连接状态 配置网卡参数 先备份网卡配置文件&#xff0c;再修改 查看本机的自动获取的IP 编辑网卡配置文件 重启网络服务并查看IP 另一台机器同样的方法进行网络配置&#x…

网络工程师备考1-2章(续)

一:差错控制 (1)奇偶检验 什么意思呢? 如果我们用 奇校验,就是保证传输过来的数据中的1是奇数,如果不是奇数那么说明传输错误。 (所以会增加一位,保证正确的数据的总的1一定是奇数) (2)海明码 什么是海明距离? 两个码字,例如 0 1 0 0 和 0 0 1 0 可以看到这…

人机界面在石油钻井工程中的应用:如何搭建钻井工程参数监测系统?

一、应用背景 石油钻井工程是石油开采过程中最为关键的一个环节&#xff0c;直接决定着石油开采的质量和经济效益&#xff0c;而钻井工程参数的实时监测、分析处理和存储是保证安全、可靠、高效钻井的重要途径。 随着科学技术的飞速进步&#xff0c;尤其是自动化技术的发展&a…

HTML网页设计制作大作业(div+css)---浩瀚天文 (13页有二级菜单)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&#xff1a;结构 CSS&#xff1a;样式 在操作方面上运用了html5和css3&#xff0c; 采…

MySQL索引及调优回顾

MySQL索引及调优回顾 1.1 &#xff1a;索引诞生的背景是怎样的&#xff1f; 假如数据库表中只有10条记录&#xff0c;我们可以一条条的进行查询。假如有500万条记录呢&#xff0c;从假如还是一条条去查询可能需要的时间就会比较长&#xff0c;此时索引就诞生了。1.2 &#xf…

SSH Keylogger密码抓取

简介 SSH Keylogger终端切换用户记录用户输入的终端信息可获取密码 主要利用strace系统调试工具获取ssh的读写连接的数据&#xff0c;以达到抓取管理员登陆其他机器的明文密码的作用。 Strace strace命令是一个集诊断、调试、统计于一体的工具,常用来跟踪进程执行时的系统调…

flutter 中最详细的继承,多态,接口讲解

flutter 中最详细的继承&#xff0c;多态&#xff0c;接口讲解前言一、继承&#xff08;Extends&#xff09;二、混合 mixins&#xff08;with&#xff09;2.1、最简单的mixin2.2、on 关键字&#xff0c;基于某个类型的mixin2.3、多个mixin2.4、mixin 怎么实现多继承三、接口的…

常见简单的排序算法汇总

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Java数据结构 格言&#xff1a;目之所及皆为回忆&#xff0c;心之所想皆为过往 目录 插入排序 原理 代码实现 算法性能分析 希尔排序 引入 原理 代码 算法分析 选择排序 原理 代码 堆排序 原理 代码 算法分析…

pythonUI自动化测试selenium安装使用

pythonUI自动化测试selenium安装使用一、selenium二、安装1. selenium其实虽然称之为工具&#xff0c;但是实际是python中一个库2.安装浏览器3.下载浏览器驱动三、元素定位1.常见的元素定位方式2.打开浏览器3.设置最大行4.设置隐式等待5.打开网页6.点击 登录 按钮7.设置等待8.用…

【javaEE】网络编程套接字

To u&me: 努力经营当下&#xff0c;直至未来明朗 文章目录前言一、网络编程&#xff08;没时间可以跳过&#xff09;一&#xff09;网络编程了解二&#xff09;相关基本概念二、Socket套接字三、数据报套接字通信&#xff08;UDP&#xff09;写一个最简单的UDP版本的客户端…

[附源码]java毕业设计科院垃圾分类系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

高级UI-Canvas(变换技巧,状态保存)

前言 在前面我们把Paint关于UI颜色样式的处理进行了学习&#xff0c; 其实真正高级部分就是三个点&#xff0c;渲染&#xff0c;滤镜&#xff0c;图形组合&#xff0c;而我们图形绘制比较重要的另一个对象Canvas也是需要我们去重点掌握的&#xff0c;那么这次课咱们来进行Canv…

数组与指针实验

指针与数组实验 先简单看一下以下c代码 #include <stdio.h> #include <stdlib.h> int main() {char array[10];array[0] 0x56;array[1] 0x78;array[9] 0x12;char *p (char *)malloc(10);p[0] 0x34;p[1] 0x12;printf("%p\n%p\n%p\n%p\n", array, …

[附源码]Python计算机毕业设计 家乡旅游文化推广网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【微信小程序】.js文件的代码结构与Page页面的生命周期

&#x1f3c6;今日学习目标&#xff1a;第十期——.js文件的代码结构与page页面的生命周期 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人主页&#xff1a;颜颜yan_的个人主页 ⏰预计时间&#xff1a;25分钟 &#x1f389;专栏系列&#xff1a;我的第一个微信小程序 文章目录…

尚医通 (二十二) --------- MongoDB 简介

目录一、NoSQL 简介二、什么是 MongoDB ?三、MongoDB 特点四、安装 MongoDB1. 数据库2. 文档3. 集合4. 适用场景五、MongoDB 概念解析一、NoSQL 简介 NoSQL (NoSQL Not Only SQL)&#xff0c;意即反 SQL 运动&#xff0c;指的是非关系型的数据库&#xff0c;是一项全新的数据…

使用SRM系统有哪些供应商管理优势?

SRM系统就是我们常说的供应商关系管理&#xff0c;它主要是用来改善与供应链上游供应商的关系&#xff0c;改善企业与供应商的关系的新型管理机制&#xff0c;使双方关系更加紧密&#xff0c;从而实现供应双赢。相信对SRM供应商关系管理系统有了解的朋友们并不陌生&#xff0c;…

[力扣] 剑指 Offer 第二天 - 复杂链表的复制

这里写目录标题题目来源题目描述示例示例 1示例 2示例 3示例 4题目解析算法 1代码实现执行结果复杂度分析算法 2代码实现执行结果复杂度分析总结耐心和持久胜过激烈和狂热。 题目来源 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode…

鲁棒局部均值分解 (RLMD)(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

如何在Ubuntu 22.04使用wine安装windows版本微信

继上篇《如何在 Ubuntu 22.04 上安装 最新版本Wine》成功安装wine。使用以下命令安装&#xff1a; $ sudo dpkg --add-architecture i386 && sudo wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - && sudo apt-add-repository…