精华内容
下载资源
问答
  • 2021-04-21 14:05:16

    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脚本”版不能正常使用,于是修改了一下加密函数逃避杀软,但同 1.0版一样由宿主解释执行脚本的特性注定了这种加密是可逆并非常脆弱的,WScript.Echo 一下Execute 后的内容即可显示...
  • VBS脚本编程参考手册
  • VBS脚本操作Excel常见方法汇总
  • TIA Portal WinCC Engineering V17 – VBS脚本编程参考手册
  • wincc VBS脚本加密破解

    2021-07-26 08:19:24
    wincc VBS脚本加密破解
  • WinccVbs脚本密码查看.zip
  • 西门子
  • VBS脚本常用代码大全2011整理.pdf
  • cmd执行vbs脚本

    2019-12-05 11:37:27
    我个人喜欢研究cmd,后面无意中接触到vbs,就思考cmd能运行vbs么?---答案是可以的。经过研究发现,cmd可以执行vbs,但是还是需要生成vbs文件,执行完成后删除vbs文件
  • c#调用VBS脚本

    2018-06-08 16:23:11
    c#(winform)调用VBS脚本 c#(winform)调用VBS脚本
  • 官方出版的CHM格式的VBS脚本参考手册
  • 使用vbs脚本实现ssh一键连接服务器
  • TIA博途WINCC中通过VBS脚本执行向文件中读写数据的具体操作步骤
  • 运行该脚本后,文件会先拷贝到system32目录中然后运行,监控移动存储设备的插入,如果有U盘插入,会将你感兴趣的文件拷贝到电脑相应目录中。
  • 主要介绍了vbs脚本实现下载jre包并静默安装的代码实例,通过本文可以学到VBS中下载远程文件的方法、静默安装jre包的方法,需要的朋友可以参考下
  • 复制自身的vbs脚本,一般用在病毒的隐藏
  • wincc用VBS代码向数据库内写入数据图文教程,附带vbs代码样例环境win764+winccv7.2+sqlserver2008
  • 有时候我们再写一些脚本的时候,需要删除文件自身,一来保密二来删除不需要的文件。
  • WinCC常用C和VBS脚本.pdf

    2019-05-13 09:40:58
    WinCC常用的C脚本和VBS脚本对变量进行置位,复位,取反,读写变量;
  • VBS脚本读写EXCEL方法介绍
  • vbs脚本手册.doc

    2022-03-13 20:07:29
    vbs脚本手册
  • wincc 趋势曲线VBS脚本

    2019-01-08 10:46:53
    博途V15 wincc使用VBS脚本添加删除趋势曲线,文件为添加删除曲线脚本
  • ScriptControl接口 属性名称 类型 备注 ...如果为False,则诸如消息框之类的界面元素不可见。...脚本暴露给宿主调用的对象。...宿主提供给脚本的组件库模块。...设置或获取脚本引擎解释的语言,例如:VBScript、...脚本
  • 主要介绍了无法执行vbs脚本中遇到的问题及解决方案,需要的朋友可以参考下
  • 管理网卡vbs脚本

    2020-09-06 02:20:35
    管理网卡的vbs脚本
  • WINCC VBS 脚本资料,里面有语句的使用方法,还有案例介绍
  • VBS脚本编程经典教材
  • 脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下N天前创建的文件的vbs脚本

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,488
精华内容 9,395
关键字:

vbs脚本