热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vbs脚本:vbs脚本语言

本文主要介绍关于脚本语言,vbscript的知识点,对【vbs脚本】和【vbs脚本语言】有兴趣的朋友可以看下由【Princesk】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【脚本】相关技术问

本文主要介绍关于脚本语言,Vbscript的知识点,对【vbs脚本】和【vbs脚本语言】有兴趣的朋友可以看下由【Princesk】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【脚本】相关技术问题。

vbs脚本语言

1、注释

两种格式REM +内容或者’+内容

'REM 这是注释
' Dim name:name = 2
' const name2=33
' Dim msg
' '这也是注释
' 'nskdjkasj
' msg="shu"

vbs内建函数。inputbox表示输入。msgbox表示输出
vbs的函数为一个黑盒,只需要关注输出和输入结果即可

2、参数类型

vbs与其他与语言一样,分为常量和普通变量,常量由const定义,变量由Dim声明,这两个声明方式不一样。

const name4=33
const name6 =2
Dim name5:name5 = 2
Dim name3,nam23
name3=23

声明的变量只有一种类型variant,下辖多个子类型,根据上下文判断是数字还是字符串,数字可以进行加减乘数 取余运算

变量子类型

’ 'Empty - 未初始化都是这个值,数值变量,值为0,字符串为""
’ 'Null - 无任何数据的var
’ 'Boolean - true或者false
’ 'Byte - 包含0到255的整数
’ 'Integer - -32768到32768
’ 'Currency - -922337203685477.5808 到 922337203685477.5808
’ 'Long - -2147483648 到 2147483648
’ 'Single - 单精度浮点数,-3402823E38 到 -1.401298E-45(负数),1.401298E-45 到 3402823E38(整数)
’ 'Double - 双精度浮点数,-1.79769313486232E308 到 -4.94065645841247E-324(负数)
’ 'Date(Time) - 公元100年1月1人到公元9999年12月31日
’ 'String - 可变长字符串,最大长度20亿个字符
’ 'Object - 包含对象
’ 'Error - 包含错误号

’ '基本每个子类型都有对应的vbs函数进行转换
’ 'Cbool - 换成布尔型
’ 'Cbyte - 转成0到255的整数
’ 'Ccure, Cdbl, Csng - 转成浮点小数,前面那个小数点4位,后面2个更大
’ 'Cdate - 转换成日期值
’ 'Cint,Clng - 转成整数,后者范围比前者大
’ 'Cstr - 转成字符串

3、选择语句if和select case

vbs脚本if 语句 if语句采用=而不是==号判断是否相等

'选择语句if

Dim a , d
 a=2
 d=3
if a>d Then
    msgbox a
else
  msgbox d
End if
Dim kl
kl = inputbox("putin kl")
select case kl
case 23
 msgbox("ss")
case 2
 msgbox "2"
case end
 msgbox 56
end select
4、循环语句 do…loop

'do …loop 跳出循环采用exit do

const pass =“123456”

do 
    a=inputbox("putin")
    if a=pass then
        exit do
        end if
    
loop

dim i:i=1
do 
        a=a=inputbox("putin")
        if a=pass then
            exit do
                else
                i = i + 1
            end if

            if i = 4 then
                exit do
                end if
loop
do while …loop
dim i :i = 1
do while i <4
a=a=inputbox("putin")
 if a=pass then
 exit do
 else
 i = i + 1
 end if
 loop
while 放在loop后面减少一次循环
 dim i:i=1
 do 
  a=inputbox("putin")
  if a=pass then
     exit do
  else
     i = i + 1
  end if
 loop while i <4
for 循环语句
REm for 循环次数 ...... next,

 dim kp
 for kp=0 to 5
 msgbox k 
next
while…wend 6、数组,一维数组和二维数组
 dim a(9)
 for i =0 to 9
 a(i) = i
 msgbox a(i)
 next
dim name(8),str

for i = 0 to 8
'这里&符号是合并字符串的意思
name(i) = inputbox("putin your number"&i+1)
next
for i = 0 to 8
msgbox name(i)
i=i+1

'这里只会打印1,3,5,7,9,因为每次循环多进行了一次i的计算
next

5、函数 vbs自带函数

vbs常用函数

http://www.zzvips.com/article/90104.html

vbs自定义函数

两种sub和function

sub没有返回值,function可以选择带有返回值,在自身的functio定义返回值,格式为函数名称=返回值



   Function reboot()
        xsh.Screen.SynchrOnous= true
	    xsh.Screen.Send("reboot")
        xsh.Screen.Send(VbCr)
		xsh.Session.Sleep(100000)
        xsh.Screen.Send(VbCr)
   End function  
   

   Function login()
        xsh.Screen.Send(VbCr)
		xsh.Screen.WaitForString("login")
		xsh.Screen.Send(VbCr)
		xsh.Screen.Send("root")
		xsh.Screen.Send(VbCr)
		xsh.Session.Sleep(3000)
		xsh.Screen.Send(VbCr)
   End function   
    
   function check(kj )
    xsh.Screen.Send(" route  -ne | grep cellular1 | wc -l ")
		xsh.Screen.Send(VbCr)
        screenrow = xsh.Screen.CurrentRow
        data = xsh.Screen.Get(screenrow-1,1,screenrow-1,20)
		
		if CInt(Instr(1,data,"4",1)) = "1"  Then
            check(kj) = -1
		else 
		    check(kj) = kj
        End If
   End function
   
   
   Function error(count0 ,j0)
           xsh.Screen.Send("check_error cellular1_offline vbs_will_stop:"+CStr(count0))
		   xsh.Screen.Send(VbCr)
           xsh.Dialog.MsgBox("check_error cellular1 offline vbs_stop: reboot:"+Cstr(count0))
           xsh.Dialog.MsgBox("check route"+Cstr(j0))
   End Function
   
Sub Main
   Dim count:count = 1
   do while count<3
		 call login()
		 dim j:j=1
		 do while j>0
		      if  j=10 Then
			       call error(count,j)
				   exit do
              End If
			  
              xsh.Screen.Send(" route  -ne | grep cellular1 | wc -l ")
		      xsh.Screen.Send(VbCr)
              screenrow = xsh.Screen.CurrentRow
              data = xsh.Screen.Get(screenrow-1,1,screenrow-1,20)
		
		      if CInt(Instr(1,data,"4",1)) = "2"  Then
			       xsh.Screen.Send("cellular1 online succfess")
				   xsh.Screen.Send(VbCr)
			       exit do 				   
              End If
			 
			 j = j + 1
			 xsh.Session.Sleep(2000)
		 loop
		 if j=10 then
		    exit do
		 end if
		 count = count +1
		 xsh.Session.Sleep(20000)
   Loop
   Call reboot()
End Sub
6、对象
Sub Main
	'xsh.Session.Open("C:\...\NetSarang\Xshell\Sessions\New Session.xsh")
	Dim count:count = 1
	while count > 0
		xsh.Screen.Synchronous = true
		
		xsh.Screen.Send("reboot")
		xsh.Screen.Send(VbCr)
		xsh.Session.Sleep(150000)
		
		'*** WaitForString ***
		xsh.Screen.Send(VbCr)
		xsh.Screen.WaitForString("login")
		
		'*** Send ***
		xsh.Screen.Send("root")
		xsh.Screen.Send(VbCr)
		xsh.Session.Sleep(3000)
		xsh.Screen.Send(VbCr)
		xsh.Screen.Send(VbCr)
		
        '*** 赋值用dim 定义值jkl并同时赋jkl值0***                   
              Dim jkl:jkl = 0
        '*** while 循环 while开始 Wend结束 ***
              while jkl = 0
            '*** vbs像xshell内部发送执行命令 ***
            xsh.Screen.Send("cat /etc/dhcp3/dhcpd6.leases | grep 2001::5656: |wc -l")
            '*** 回车,发送一条命令就回车一次,要不不执行***
		      xsh.Screen.Send(VbCr) 
            '*** 等待20s***
                                      xsh.Session.Sleep(20000) 
            '*** 使用查找字符串固定条款***
		      screenrow = xsh.Screen.CurrentRow
            '*** 获取xshell当前打印内容,这里是读取其最末行40个字符,第一个参数和第三个参数固定 ***
		      data = xsh.Screen.Get(screenrow-1,1,screenrow-1,20) 
                
                '*** instr( start_position,string1, string2,nth_appearance )
'***
              if CInt(Instr(1,data,"1",1)) = "1" Then
                  jkl = 1
              End If
                '***if 语句格式 if  判断条件 Thenelse就加else 没有就End If***
              Wend


		screenrow = xsh.Screen.CurrentRow
		data = xsh.Screen.Get(screenrow-1,1,screenrow-1,20)
		if CInt(Instr(1,data,"1",1)) = "0" Then
			xsh.Screen.Send("cat /etc/dhcp3/dhcpd6.leases | grep 2001::5656: |wc -l")
			xsh.Screen.Send(VbCr)
		
			xsh.Session.Sleep(40000)
			screenrow = xsh.Screen.CurrentRow
			data = xsh.Screen.Get(screenrow-1,1,screenrow-1,20)
			if CInt(Instr(1,data,"1",1)) = "0" Then
				xsh.Screen.Send("check_error:" + data)
				xsh.Screen.Send(VbCr)
                                '***xshell外部日志提醒,不点击就暂停执行***
				xsh.Dialog.MsgBox("check_error:" + data)
				count = 0
			End If
		End If
		
		xsh.Screen.Send("count=" + cstr(count))
		count = count + 1
		xsh.Screen.Send(VbCr)
	Wend
End Sub
Sub Main
	'xsh.Session.Open("C:\...\NetSarang\Xshell\Sessions\New Session.xsh")
	Dim count:count = 0
	while count < 50
        xsh.Screen.Synchronous = true

	    xsh.Screen.Send("reboot")
        xsh.Screen.Send(VbCr)
		xsh.Session.Sleep(120000)
        xsh.Screen.Send(VbCr)
        xsh.Screen.Send(VbCr)
		
		xsh.Screen.Send(VbCr)
		xsh.Screen.WaitForString("login")
		xsh.Screen.Send(VbCr)
		xsh.Screen.Send("root")
		xsh.Screen.Send(VbCr)
		xsh.Session.Sleep(3000)
		xsh.Screen.Send(VbCr)


        Dim j:j = 1
        do while j > 0
				xsh.Screen.Send(" route -ne | grep 0.0.0.0 | wc -l ")
		        xsh.Screen.Send(VbCr)
                screenrow = xsh.Screen.CurrentRow
                data = xsh.Screen.Get(screenrow-1,1,screenrow-1,20) 
		        if CInt(Instr(1,data,"4",1)) = "1"  Then
                        exit do
                End If
				
				j = j + 1
				
				if  j = 20 Then
                   xsh.Screen.Send("check_error:" + count)
		           xsh.Screen.Send(VbCr)
                   xsh.Dialog.MsgBox("reboot:" +count)
                   xsh.Dialog.MsgBox("check route" +j)
                End If
    
				xsh.Session.Sleep(15000)
	    Loop
		
	    xsh.Session.Sleep(30000)
        count = count + 1
 	Wend
End Sub

本文《vbs脚本》版权归Princesk所有,引用vbs脚本需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
手机用户2502892557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有