六安金安赵国庆老师建议重新设计信息化助手打包,更方便教师使用其中工具,原使用文件夹、链接管理,需要两步,且不直观,很多教师找不到原来程序,且依赖安装解压路径。所以开始VBS脚本学习,用来处理文件管理及链接创建问题。
vbs优势:windows内置,无需运行和编译环境及工具,虽然只是一个命名为.vbs的文本文件,但却能直接调用windows系统中的功能及组件,非常适合做一些重复、自动化操作,我理解类似于以前接触的.bat批处理文件,或.cmd,有什么差异还不清楚。
学习实例及问题:
- 1、Dim声明变量,没有变量类型,并且不支持在声明时对变量赋值,使用时可以将变量转换为指定类型:
- Cbool函数将变量转换成布尔值。<p>Cbyte函数将变量转换为0到255之间的整数。</p>
- Ccur函数、Cdbl函数和Csng函数将变量转换为浮点数值,前者只精确到小数点后四位,后两者要更加精确,数值的范围也要大的多。
- Cdate函数将变量转换为日期值。
- Cint函数和Clng函数将变量转换为整数,后者的范围比前者要大的多。
- Cstr函数将变量转换为字符串。
- 2、inputbox是VBS内建的函数,可以接受输入的内容,其语法格式为:Inputbox("对话框内容","对话框标题")
- 3、Msgbox语法:msgbox "对话框内容", , "对话框的标题"
- 4、CreateObject 通过它来处理外部文件
- 5、WSH内置对象
- (1)Scripting.FileSystemObject —> 提供一整套文件系统操作函数
- (2)Scripting.Dictionary —> 用来返回存放键值对的字典对象
- (3)Wscript.Shell —> 提供一套读取系统信息的函数,如读写注册表、查找指定文件的路径、读取DOS环境变量,读取链接中的设置。比如注册表的读、写、删除就是regread、regwrite、regdelete
- (4)Wscript.NetWork —> 提供网络连接和远程打印机管理的函数。(其中,所有Scripting对象都存放在SCRRUN.DLL文件中,所有的Wscript对象都存放在WSHOM.ocx文件中。)
- 6、在脚本的开头添加On Error Resume Next ,这行语句告诉vbs在运行时跳过发生错误的语句,紧接着执行跟在它后面的语句。
复制代码 案例1:按顺序打开外部文件
- Set objShell = CreateObject("Wscript.Shell")
- objShell.Run "notepad" ,,true
- objShell.Run "calc"
复制代码 脚本的功能是先打开记事本,关闭记事本后自动打开计算器。run函数有三个参数,第一个参数是你要执行的程序的路径,第二个程序是窗口的形式,0是在后台运行;1表示正常运行;2表示激活程序并且显示为最小化;3表示激活程序并且显示为最大化; 第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。
案例2:注册表
1、读注册表的关键词和值:
可以通过把关键词的完整路径传递给wshshell对象的regread方法。例如:
set ws=wscript.createobject("wscript.shell")
v=ws.regread("HKLM\Software\7-Zip\Path ")
wscript.echo v
2、写注册表
使用wshshell对象的regwrite方法。例子:
path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"
set ws=wscript.createobject("wscript.shell")
t=ws.regwrite(path & "jj","hello")
这样就把
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\jj这个键值改成了hello.不过要注意:这个键值一定要预先存在。
如果要创建一个新的关键词,同样也是用这个方法。
path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\run\sssa2000\love\"
set ws=wscript.createobject("wscript.shell")
val=ws.regwrite(path,"nenboy")
val=ws.regread(path)
wscript.echo val
3、删除关键字和值
使用regdelete方法,把完整的路径传递给regdelete就可以了
例如
val=ws.regdel(path)
注意,如果要删除关键词的值的话 一定要在路径最后加上"\",如果不加斜线,就会删除整个关键词。
|