VBS 笔记
发布日期:2021-06-30 14:57:38
浏览次数:2
分类:技术文章
本文共 6353 字,大约阅读时间需要 21 分钟。
VBS 笔记
常用语法
- 不要分号结尾(较长时间没用VBS突然回来时很容易忘记这个)
- 注释用单引号
强制显式声明所有变量
Option ExplicitDim a,bPublic c, dPrivate e
变量声明
https://www.runoob.com/vbscript/vbscript-variables.html
- 必须以字母开头
- 不能包含点号
.
- 不能超过 255 个字符
- vbs 不允许声明的同时给变量赋值
- vbs变量有ms家族的传统:不区分大小写
dim arr '声明变量arr = split("123,456", ",") '切字符串msgbox arr(0) '数组引用
变量赋值
- 普通类型直接赋值。
- 对象赋值前面要加 set
dim str'声明变量str= "哈喽"msgbox strSet WshShell = CreateObject("WScript.Shell") WshShell.Exec "calc" '打开计算器
分支
IF
注意
vbs判断相等用的是一个等号 = Dim inputinput = InputBox("请随意输入一个数字", "猜数字", 0)If input = "" Then msgbox "你啥也没输入啊", 64, "结果"ElseIf input = 9527 Then msgbox "恭喜猜对了 9527 就是你的终生代号", 64, "结果"Else msgbox "真可惜,木猜中!", 64, "结果"End If
Select Case
Dim resultresult = MsgBox("弹窗消息", 4, "弹窗标题")Set WshShell = createobject("wscript.shell")Select Case result Case 1 WshShell.popup "vbOK - OK 按钮被点击", 1, "操作反馈", 64 Case 2 WshShell.popup "vbCancel - Cancel 按钮被点击", 1, "操作反馈", 64 Case 3 WshShell.popup "vbAbort - Abort 按钮被点击", 1, "操作反馈", 64 Case 4 WshShell.popup "vbRetry - Retry 按钮被点击", 1, "操作反馈", 64 Case 5 WshShell.popup "vbIgnore - Ignore 按钮被点击", 1, "操作反馈", 64 Case 6 WshShell.popup "vbYes - Yes 按钮被点击", 1, "操作反馈", 64 Case else WshShell.popup "vbNo - No 按钮被点击", 1, "操作反馈", 64End Select
遍历
dim arrarr = split(" aaa , bbb , ccc ", ",")for each str in arr msgbox(str)next
dim str, istr = "老虎"i = 0Do While i < 10 str = str & "_尾巴" i = i+1loop msgbox str
字符串
https://www.runoob.com/vbscript/vbscript-ref-functions.html#string
回车符(Chr(13))、换行符(Chr(10))可以&
组合使用 ' 拼接用 &msgbox "用 & 符连接 " & Chr(13) & "用 Chr(13) 回车"
数组
https://www.runoob.com/vbscript/vbscript-ref-functions.html#array
Dim arrarr = Array(1,3,5,7)MsgBox arr(2)set WshShell = createobject("wscript.shell")for each x in arr WshShell.popup x, 1, "标题", 64 '1秒自动消失next
一些代码片段的收集
运行BAT命令,取得结果进行处理
Exec
Set WshShell = CreateObject("WScript.Shell") Set objExec = WshShell.Exec ("ping www.baidu.com") Do While Not objExec.StdOut.AtEndOfStream mystr = objExec.StdOut.ReadAll() loop msgbox mystr
'好像用了 ReadAll 系统自然就会等待执行完毕。所以不用do loop 也 OK
Set WshShell = CreateObject("WScript.Shell")Set objWshScriptExec = WshShell.Exec("ping www.baidu.com")Set objStdOut = objWshScriptExec.StdOutmystr = objStdOut.ReadAllWScript.Echo mystr
输出HTA并运行
set Wshell=CreateObject("Wscript.Shell")Wshell.run "%comspec% /c echo Hello HTA World! > %temp%目标文件.hta &pause ",0,0set oexec = Wshell.Exec( "mshta.exe %temp%目标文件.hta")WScript.Quit (0)
'直接用mshta.exe 运行HTA
set Wshell=CreateObject("Wscript.Shell")'生成一个页面,带VBS脚本。调用了一个msgbox。确定后用:window.close自动关闭HTA窗口(爱出错的地方是引号,要注意)set oexec = Wshell.Exec("mshta vbscript:""myzam hello world""")WScript.Quit (0)
网上找来的,生成exe。
把自己的EXE转0101再输出就好了
'调用气泡提示Sub PopTips(tipsContent,tipsTitle) Dim content, title content = tipsContent title = tipsTitle 'If InStr(content,"|") > 0 Then 'content = Split(tipsContent, "|") 'content = content(0) 'title = content(1) 'End If Set W = CreateObject("WScript.Shell") W.Run "cmd.exe /c E:\Planner\workflow\Progress\BalloonTip.exe " & content &" "& title, 0 Set w = NothingEnd Sub'生成气泡提示exeSub ExportBalloonTip() Dim Data, StrToByte Data = "4D5A00000000000000000000504500004C010200534C58210000000000000000E0000F010B01000000000000000600000000000054010000001000000C00000000004000001000000002000004000000000000000400000000000000004000000002000000000000020000000000100000100000000010000010000000000000100000000000000000000000983200008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000001000000000000000000000000000000000000000000000E00000C0000000000000000000100000003000001903000000020000000000000000000000000000E00000C08725DC324000619455A4B680FF1373F933C9FF13731633C0FF13731FB68041B010FF1312C073FA753AAAEBE0FF530802F683D901750EFF5304EB24ACD1E8742D13C9EB189148C1E008ACFF53043B43F8730A80FC05730683F87F77024141958BC5B600568BF72BF0F3A45EEB9F5EAD97AD50FF5310958B074078F37503FF630C5055FF5314ABEBEE33C941FF1313C9FF1372F8C302D275058A164612D2C34B45524E454C33322E646C6C00004D3815403259096724454CFF027F65C711B3270CF49B4887C17F6874C4703A712FEE691D2E62610E6475C3636F6DF373011C6C79782C2042D79A53AF0B4D2E02C20325730E0842616C2E6F206E54697020E8653A7874B75B14576C955D0E086DE76F75C728637329331D49906EA7266444F9433853853C01C71805E012FCE801C114FF15241001A3E4911FB9700633C0890DE81BC844EC981425A3F0DD1354F405117813227CC448C41406A2F82B30C390038B44241D0856579D7C800C33C983F8030A893D8014252035017727FF248560115834EB6822B4081B02B5E216910C03080A8C44018B2A3518942268E00A51FFD657A3150C0F866A0220335F5EE61432A134091C2428507C9B55845EC3F083FE01FA278ECA40D285F67E23008A0C3A80F9307C17C00A397F120FBE1FC98D04C7423BD6604441D07C68E499BB9410534301C383EC18384224185355B250BB28B80B9352BD9864BE084C500E14AA66003A3BC50F8E52A3B31F4E04CC3D202F51296890AD0880130CFFD7451C1283C40C011202C6057F170C5AA18414560852278484146C0381C3087EE28B7F461F8D4C241050CD5146F554F6600A52E84D14311B8BD861F41F2019047E5552100ACE6A1854EAFE8BB50026FD037E2F3312EDEB2B085620455C0A0558A459D6F12C5D110C8ED6C16818E8DCFD8E7C5553ED258B8A1E086AFA910450275D6A5B3D2CB85701EBE54BF678A9A8113AA691111422DC8F010E2C1510EBCB538ED72D7011DC73746272166E412E054578C3EE50F16F63FD73C73B1D47FD7C43716D5C61E81D4C693E3857074B45524E3F6033322E646CE309994144546BD46F706757406465771D145F7358721A7466D29E1AE25E142CFA686065125F4E6F7412696679843D506F5DB354D8417267337657514842C463D001EABAF6000000F03200000000000000000000F2010000F032000000000000000000000000000000000000000000000010400000304000C814400000000000E032400080000000007D0000C0324000E8014000DC014000DE014000C0114000FA32000008330000000000004C6F61644C69627261727941000047657450726F634164647265737300" Set xmldoc = CreateObject("Microsoft.XMLDOM") xmldoc.loadXML "" Set pic = xmldoc.createElement("pic") pic.dataType = "bin.hex" pic.nodeTypedValue = Data StrToByte = pic.nodeTypedValue Set pic = Nothing Set xmldoc = Nothing Set Tips = CreateObject("ADODB.Stream") Tips.Type = 1 Tips.Open Tips.Write StrToByte Tips.SaveToFile "E:\Planner\workflow\Progress\BalloonTip.exe", 2 Tips.Close Set Tips = NothingEnd Subon error resume Next '---------VBS错误处理----------'-----------代码部分-----------msgbox ""& 1/0'-----------代码部分-----------If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If
参考资料
微软文档
菜鸟教程
Demon
转载地址:https://jerryjin.blog.csdn.net/article/details/86673293 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月11日 12时40分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Servlet_3.0注解配置
2019-05-01
IDEA与tomcat相关配置
2019-05-01
Servlet_体系结构
2019-05-01
Servlet_urlpartten配置
2019-05-01
Request_原理
2019-05-01
Request_继承体系
2019-05-01
Request_获取请求行数据_方法介绍
2019-05-01
spring的优势
2019-05-01
编写jdbc的工程代码用于分析程序的耦合
2019-05-01
工厂模式解耦的升级版
2019-05-01
hrm中的jwt认证:获取用户数据
2019-05-01
前端权限控制:获取用户信息接口构造数据
2019-05-01
前端权限控制:前端菜单控制
2019-05-01
前端权限控制:实现思路分析-待修改
2019-05-01
有状态服务和无状态服务
2019-05-01
基于jwt的用户鉴权:配置拦截器并测试
2019-05-01
POI的概述
2019-05-01
POI文件导入:跨服务器调用查询部门信息
2019-05-01
DataURL:概述
2019-05-01
DataURL:实现原理及优缺点分析
2019-05-01