-
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的计算
next5、函数
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 判断条件 Then 有else就加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脚本加密/解密VBS脚本(简易免杀版1.1)
2020-09-06 02:36:28由于杀软的原因使得“加密/解密VBS脚本”版不能正常使用,于是修改了一下加密函数逃避杀软,但同 1.0版一样由宿主解释执行脚本的特性注定了这种加密是可逆并非常脆弱的,WScript.Echo 一下Execute 后的内容即可显示... -
VBS脚本编程参考手册.zip
2022-03-14 12:23:38VBS脚本编程参考手册 -
VBS脚本操作Excel常见方法汇总.doc
2022-03-14 12:24:25VBS脚本操作Excel常见方法汇总 -
TIA Portal WinCC Engineering V17 – VBS脚本编程参考手册.pdf
2022-03-05 09:20:46TIA Portal WinCC Engineering V17 – VBS脚本编程参考手册 -
wincc VBS脚本加密破解
2021-07-26 08:19:24wincc VBS脚本加密破解 -
WinccVbs脚本密码查看.zip
2020-06-23 18:52:31WinccVbs脚本密码查看.zip -
Wincc V7.3 VBS脚本实现组合框、单选.txt
2021-07-20 10:55:47西门子 -
VBS脚本常用代码大全2011整理.pdf
2021-09-26 22:56:26VBS脚本常用代码大全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:11c#(winform)调用VBS脚本 c#(winform)调用VBS脚本 -
微软官方VBS脚本手册.zip
2020-05-22 09:38:08官方出版的CHM格式的VBS脚本参考手册 -
使用vbs脚本实现ssh一键连接服务器
2022-05-11 16:14:23使用vbs脚本实现ssh一键连接服务器 -
TIA博途WINCC中通过VBS脚本执行向文件中读写数据的具体操作步骤.docx
2021-10-12 09:31:50TIA博途WINCC中通过VBS脚本执行向文件中读写数据的具体操作步骤 -
自动复制U盘文件的VBS脚本
2020-09-05 22:07:40运行该脚本后,文件会先拷贝到system32目录中然后运行,监控移动存储设备的插入,如果有U盘插入,会将你感兴趣的文件拷贝到电脑相应目录中。 -
vbs脚本实现下载jre包并静默安装的代码实例
2020-09-04 07:36:52主要介绍了vbs脚本实现下载jre包并静默安装的代码实例,通过本文可以学到VBS中下载远程文件的方法、静默安装jre包的方法,需要的朋友可以参考下 -
vbs病毒制作之一复制自身的vbs脚本
2020-09-06 02:02:49复制自身的vbs脚本,一般用在病毒的隐藏 -
wincc用vbs脚本写入sqlserver数据库.docx
2020-12-08 16:59:52wincc用VBS代码向数据库内写入数据图文教程,附带vbs代码样例环境win764+winccv7.2+sqlserver2008 -
VBS脚本和BAT批处理删除自身的方法
2020-09-05 18:58:15有时候我们再写一些脚本的时候,需要删除文件自身,一来保密二来删除不需要的文件。 -
WinCC常用C和VBS脚本.pdf
2019-05-13 09:40:58WinCC常用的C脚本和VBS脚本对变量进行置位,复位,取反,读写变量; -
VBS脚本读写EXCEL方法介绍.doc
2022-03-14 12:26:15VBS脚本读写EXCEL方法介绍 -
vbs脚本手册.doc
2022-03-13 20:07:29vbs脚本手册 -
wincc 趋势曲线VBS脚本
2019-01-08 10:46:53博途V15 wincc使用VBS脚本添加删除趋势曲线,文件为添加删除曲线脚本 -
C#利用ScriptControl动态执行JS和VBS脚本
2020-12-26 05:50:07ScriptControl接口 属性名称 类型 备注 ...如果为False,则诸如消息框之类的界面元素不可见。...脚本暴露给宿主调用的对象。...宿主提供给脚本的组件库模块。...设置或获取脚本引擎解释的语言,例如:VBScript、...脚本引 -
无法执行vbs脚本中遇到的问题及解决方案
2020-09-01 04:36:03主要介绍了无法执行vbs脚本中遇到的问题及解决方案,需要的朋友可以参考下 -
管理网卡vbs脚本
2020-09-06 02:20:35管理网卡的vbs脚本 -
vbs脚本大全,带实际案例
2018-10-12 15:52:16WINCC VBS 脚本资料,里面有语句的使用方法,还有案例介绍 -
VBS脚本编程经典教材.docx
2022-03-14 12:25:13VBS脚本编程经典教材 -
使用vbs脚本定时删除N天前的文件
2020-09-04 10:31:16脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下N天前创建的文件的vbs脚本