VBS学习笔记

Option Explicit   '变量必须先声明再使用的开关

'Dim v
'v="aa"+"bb" '两个字符串连接可以使用&或+
'Dim v1,v2
'v1=2:v2=3   '同一行中,多变量赋值,使用冒号:分隔
'MsgBox v1&v2,,"两个变量赋值"  '两个变量连接使用&

'MsgBox v
'MsgBox "内容",,"标题"   '注意内容和标题间使用逗号,分隔

'Dim name
'name = InputBox("请输入您的名字:","名称")
'MsgBox name,,"您的名字是:"

'函数
'CBool
'CByte
'CCur
'CDbl
'CSng
'CDate
'CInt
'CLng
'CStr

'Dim Array(2)
'ReDim preserve arrary(3,1)  'preserve保护数据,redim改变数组大小时会破坏数据

'乘方运算符^
'取模运算符Mod
'不等于 运算符<>
''逻辑和 AND,逻辑非NOT,逻辑或OR

'Select Case 变量
'Case 条件值
'语句
'最后一句为
'Case Else 
'语句
'End Select 
'注意:在执行字符串比较时,需要注意大小写,已办比较前,使用lcase函数将其转换为小写,或使用ucase函数将其转换为大写

'这个试验时要小心了,因为进入后会无限循环,可以到任务管理器结束wscript.exe进程----调整后不存在这隐患了
'Dim v,i
'v=2:i=0
'Do While v=2
' MsgBox "v=2"
' i=i+1
' If i>=2 Then 
' Exit Do   '注意这里退出时这样写的
' End If 
'Loop

'Dim v,i
'v=2:i=0
'Do
' MsgBox "v=2"
' i=i+1
' If i>=2 Then 
' Exit Do   '注意这里退出时这样写的
' End If 
'Loop Until i=2

'当条件不满足时,进入循环体
'Dim v,i
'v=2:i=0
'Do Until v=3
' MsgBox "v=2"
' i=i+1
' If i>=2 Then 
' Exit Do
' End if
'Loop

'Dim v
'v=2
'While v<5
' MsgBox "v="&v
' v=v+1

'Wend


'Function mytest(arg1,arg2)
' MsgBox "1:Hello World!"
' mytest=arg1&arg2    '函数名=某值---》函数用来返回值
'End Function 


'MsgBox mytest("2:Hello ","World !")   '有返回值的函数调用


'CreateObject,这条命令可以访问Windows系统安装的所有com对象,并且可以调用这些部件中存放的命令


'WSH是用来解析VBS的宿主,常用对象
'1、Scripting.FileSystemObject---->提供一整套文件系统操作函数
'2、Scripting.Dictionary---->用来返回存放键值对的字典对象
'3、Wscript.Shell--->提供一套读取系统信息的函数,如读写注册表、查找指定文件的路径、读取Dos环境变量、读取连接中的设置
'4、Wscript.NetWork--->提供网络连接和远程打印机管理的函数
'5、所有Scripting对象都存放在SCRRUN.DLL文件中,所有Wcript对象都存放在WHHOM.ocx中


'Dim objShell
'Set objShell = CreateObject("Wscript.Shell")
'objShell.Run "notepad",,True  'true--->是指关闭当前操作窗口后,程序在继续执行
'objShell.Run "calc"


'set 关键字是将一个对象引用赋给变量(字符串、数值、布尔值之外的变量都是对象引用)


'On Error Resume Next---》这行语句添加在脚本开头,表示vbs遇见错误直接跳过,继续执行后面语句
'err对象有两个方法clear、raise,五个属性description、helpcontext、helpfile、number、source
'err对象不用引用实例,可以直接使用


'On Error Resume Next
'Dim a,b,c
'a=11
'b=0
'c=1/b
'If Err.number<>0 Then 
' wscript.echo Err.number&Err.description&Err.source
'End If 


'命令框输入regedit,即可打开注册表
'Dim ws,v
'Set ws = wscript.CreateObject("wscript.shell")
'v=ws.regread("HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR\exe64")  '------>注册表中该键对应于有值,regread读取键对应的值
'wscript.echo v


'Dim path,ws,t
'path="HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR\"
'Set ws=wscript.CreateObject("wscript.shell")
't=ws.regwrite(path&"ceshi","hello")  '---->把HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR\ceshi这个键的值改成了 hello---->这是修改已存在的键


'Dim path,ws,val
'path="HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR\ceshi2" '---->注意,注册表中没有cheshi2这个键
'Set ws=wscript.createobject("wscript.shell")
'val=ws.regwrite(path,"nenboy") '---->新建ceshi2的值为 nenboy
'val=ws.regread(path)
'wscript.echo val


'Dim path,ws,val
'path = "HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR\ceshi2"  '删除ceshi2的键和值
'Set ws=wscript.createobject("wscript.shell")
'val=ws.regdelete(path)
'wscript.echo val


'注册表运行部分见regedit截图




'Dim fs,wshshell,osdir,f,wfolder
'Set fs=wscript.CreateObject("scripting.filesystemobject")
'Set wshshell=wscript.CreateObject("wscript.shell")
'osdir=wshshell.expandenvironmentstrings("%systemroot%")
'Set f=fs.getfolder(osdir)
'wscript.echo f
'Set wfolder=fs.getspecialfolder(0)  '这里参数可以是0--》windows文件夹、1---》系统文件夹、2---》临时目录
'wscript.echo wfolder




'输入打开记事本,输入两行内容后自动关闭记事本,并保存文件名为test,关闭记事本使用组合键 Alt+F4实现
'Dim wshShell
'Set wshShell=wscript.CreateObject("wscript.shell")
'wshShell.run "notepad"
'wscript.sleep 2000  '暂停2s,等待记事本打开
'wshShell.appactivate "无标题-记事本"
'wshShell.sendkeys "This is the most wonderful day of my life"
'wshShell.sendkeys "{Enter}"   '换行
'wshShell.sendkeys "because I'm here with you now"
'wshShell.sendkeys "%{F4}"  'Alt+F4,即点击关闭按钮
'wshShell.sendkeys "%S"   'Alt+S,即点击保存按钮,这里大写S、小写S无所谓
'wscript.sleep 2000
'wshShell.sendkeys "test"   '奇怪怎么将文件保存为test呢?提前sleep2秒即可
'wshShell.sendkeys "%S"






'制作能定时存盘的记事本
'Dim wshShell,autoSaveTime,txtFileName
'autoSaveTime=300000   '间隔自动保存时间设置为5分钟
'Set wshShell=wscript.CreateObject("wscript.shell")
'txtFileName=InputBox("请输入您要创建的文件名(英文):")
'wshShell.run "notepad"
'wscript.sleep 200
'wshShell.appactivate "无标题-记事本"
''wshShell.sendkeys "zhongguo"
'wscript.sleep 3000
'wshShell.sendkeys "^s"  'Ctrl+s,即保存快捷键,注意这里是小写的s,大写的S还不起作用,汗
'wscript.sleep 3000
'wshShell.sendkeys txtFileName
'wscript.sleep 300
'wshShell.sendkeys "%s"    'Alt+s,即点击保存按钮
'wscript.sleep autoSaveTime
'While wshShell.appactivate(txtFileName)=True 
' wshShell.sendkeys "^s"
' wscript.sleep autoSaveTime
'Wend
'wscript.quit



'集合对象dictionnary,key、item
'Dim sdict,key,item
'Set sdict=CreateObject("Scripting.Dictionary")
'sdict.add "a","apple"   '给该集合添加一个(键值对)的内容
'sdict.add "b","banana"
'sdict.add "c","copy"
'MsgBox "该集合有对象:" & sdict.count & "个"   '该集合的(键值对)个数
'sdict.remove("c")   '删除键为“c”的(键值对)
'sdict.Item("a")="am"   '将键名为“a”的值修改为“am”
'
'If sdict.exists("b")=True Then    '判断该集合中存在键名为“b”的对象么
' sdict.Key("b")="g"   '将键名为“b”的键名修改为“g”
'End If
'
'For Each key In sdict.keys    '获取该集合中所有键组成的数组
' MsgBox "键名" & key & "是" & "=" & sdict(key)  & " 或另一种取值方式:sdict.Item(key):" & sdict.Item(key)  '获取对应键对应的值
'Next
'For Each item In sdict.items()   '获取该集合中所有值组成的数组
' MsgBox "键值" & item
'Next
'sdict.removeall   '清空sdict集合






'Dim money,num,n,rn,eg
'money=FormatCurrency(10000)  
'MsgBox money    '显示的内容为  ¥10,000.00
'num=FormatPercent(0.68)
'MsgBox num   '显示的内容为68.00%
'n=Rnd
'MsgBox n      '返回随机数,返回0-1之间,不包括0,1
'rn=Round(10.4)
'MsgBox rn    '四舍五入,即输出为10
'rn=Round(-1.6)
'MsgBox rn    '四舍五入,即输出为-2
'eg=ScriptEngine
''MsgBox eg    '输出脚本语言,即VBScript








'========================================================
'拥有递归的函数调用:遍历盘符下所有文件
'========================================================
'Dim fso,dc,d,isFile,cop
'Set fso=CreateObject("scripting.filesystemobject")
'Set dc=fso.Drives
'For Each d In dc
' If  d.drivetype=3 Or d.drivetype=2 Then
' wscript.echo d '弹出窗口,显示找到的盘符
' scan(d)
' End If
'Next


'isFile=wscript.scriptfullname '该脚本程序路径及该脚本名称
'MsgBox isFile
'Set isFile=fso.getfile(isFile) '该脚本程序路径及该脚本名称
'MsgBox isFile
'isFile.copy(isFile.path&".vbs")


'Dim folder,files,file,subfolders,subfolder
'Sub scan(folder_)                    
' Set folder_=fso.getfolder(folder_)         '当前目录下文件处理
' Set files=folder_.files
' For Each file In files           
' MsgBox file.path
' Next


'    Set subfolders=folder_.subfolders    '当前目录下子目录下文件的处理
' For Each subfolder In subfolders        
' scan(subfolder)    '当前目录下子目录及子目录下文件的处理 
' MsgBox subfolder
' next
'End sub
'=============================================================

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值