很好的VBS教程 二Word文件下载.docx
- 文档编号:8145367
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:15
- 大小:25.84KB
很好的VBS教程 二Word文件下载.docx
《很好的VBS教程 二Word文件下载.docx》由会员分享,可在线阅读,更多相关《很好的VBS教程 二Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。
一、文件属性:
在windows中,文件的属性一般用数字来表示:
0代表normal,即普通文件未设置任何属性。
1代表只读文件。
2代表隐藏文件。
4代表系统文件。
16代表文件夹或目录。
32代表存档文件。
1024代表链接或快捷方式。
例如:
setfs=wscript.createobject(“scripting.filesystemobject”)
setf=fs.getfile(“d:
\index.txt”)
msgboxf.Attributes‘attributes函数的作用是显示文件属性
需要说明的是:
msgbox显示的结果往往不是上面说明的数字,而是有关属性代表数字的和。
[作者:
临汾市外事旅游局薛靖澜,转载请注明出处]
二、创建文件:
object.createtextfile方法,注意创建前一般需要检查文件是否存在。
setfso=wscript.createobject(“scripting.filesystemobject”)
iffso.fileexists(“c:
\kk.txt”)then
msgbox“文件已存在”
else
setf=fso.createtextfile(“c:
\kk.txt”)
endif
如需要强制覆盖已存在的文件,则在文件名后加true参数。
三、复制、移动、删除文件:
使用copyfile方法、movefile方法、deletefile方法。
fso.copyfile“c:
\kk.txt”,”d:
\1\kk.txt”,true//如上文说述,true代表强制覆盖
fso.movefile“c:
\kk.txt”,“d:
\”//移动文件
fso.deletefile“c:
\kk.txt”//删除文件
四、文件的读写:
1、打开文件:
使用opentextfile方法
如:
setts=fso.opentextfile(“c:
\kk.txt”,1,true)
说明:
第二个参数为访问模式1为只读、2写入、8为追加
第三个参数指定如文件不存在则创建。
2、读取文件:
read(x)读x个字符;
readline读一行;
readall全部读取
setffile=fso.opentextfile(“c:
\kk.txt”,1,true)
value=ffile.read(20)
line=ffile.readline
contents=ffile.readall
3、常见的指针变量:
atendofstream属性:
当处于文件结尾的时候这个属性返回true。
一般用循环检测是否到达文件末尾。
dowhileffile.atendofstream<
>
true
ffile.read(10)
loop
atendofline属性:
如果已经到了行末尾,这个属性返回true。
Column属性(当前字符位置的列号)和line属性(文件当前行号):
在打开一个文件后,行和列指针都被设置为1。
4、在文件中跳行:
skip(x)跳过x个字符;
skipline跳过一行
5、在文件中写入字符:
可以用2-写入和8-追加的方式来写入
其方法有:
write(x)写入x字符串;
writeline(x)写入x代表的一行
writeblanklines(n)写入n个空行
注意:
最后一定要使用close方法关闭文件。
临汾市外事旅游局薛靖澜,转载请注明出处]读文件后一定要关闭,才能以写的方式打开。
◎Vbs脚本编程简明教程之十二—使用系统对话框
在VBS脚本设计中,如果能使用windows提供的系统对话框,可以简化脚本的使用难度,使脚本人性化许多,很少有人使用,但VBS并非不能实现这样的功能,方法当然还是利用COM对象。
1、SAFRCFileDlg.FileSave对象:
属性有:
FileName—指定默认文件名;
FileType—指定文件扩展名;
OpenFileSaveDlg—显示文件保存框体方法。
2、SAFRCFileDlg.FileOpen对象:
FileName—默认文件名属性;
OpenFileOpenDlg—显示打开文件框体方法。
3、UserAccounts.CommonDialog对象:
Filter—扩展名属性("
vbsFile|*.vbs|AllFiles|*.*"
);
FilterIndex—指定
InitialDir—指定默认的文件夹
FileName—指定的文件名
Flags—对话框的类型
Showopen方法:
很简单,ok,让我们来举两个简单的例子:
例一:
保存文件
SetobjDialog=CreateObject("
SAFRCFileDlg.FileSave"
SetobjFSO=CreateObject("
Scripting.FileSystemObject"
objDialog.FileName="
test"
objDialog.FileType="
.txt"
intReturn=objDialog.OpenFileSaveDlg
IfintReturnThen
objFSO.CreateTextFile(objDialog.FileName&
objdialog.filetype)
Else
Wscript.Quit
EndIf
1、SAFRCFileDlg.FileSave对象仅仅是提供了一个方便用户选择的界面,本身并没有保存文件的功能,保存文件还需要使用FSO对象来完成。
2、用FileType属性来指定默认的文件类型。
3、在调用OpenFileSaveDlg方法时,最好把返回值保存到一变量中,用它可以判断用户按下的是确定还是取消。
例二:
.打开文件
setobjFile=CreateObject("
SAFRCFileDlg.FileOpen"
intRet=objFile.OpenFileOpenDlg
ifintretthen
msgbox“文件打开成功!
文件名为:
”&
objFile.filename
wscript.quit
例三:
比较复杂的打开文件对话框
UserAccounts.CommonDialog"
objDialog.Filter="
vbsFile|*.vbs"
objDialog.InitialDir="
c:
"
tfile=objDialog.ShowOpen
iftfilethen
strLoadFile=objDialog.FileName
msgboxstrLoadFile
在脚本中加入objDialog.Flags=&
H020看看会出现什么结果。
◎Vbs脚本编程简明教程之十三—WMI基础
WMI即Windows管理规范,是用户管理本地和远程计算机的一种模型。
通过它可以访问、配置、管理和监视几乎所有的Windows资源。
WMI的语法十分简单,基本上常见的命名空间、对象等用几乎一模一样。
它对应的是Windows里的WMI服务(winmgmt)。
一、WMI的起源
几年前,几家资深的计算机公司由于系统管理领域缺少标准,委托DMTF启动了CIM(通用信息模型)项目,理想的CIM是一种不受限制于任何特定实现环境的管理工具。
WMI是CIM的微软实现,它有很多类是从CIM中派生出来的。
二、WMI的命名空间
那么命名空间是做什么作用的呢?
我简单这样说,在同一段代码中,如果有两个变量或函数的名字完全相同,就会出现冲突。
命名空间就是为解决变量、函数的命名冲突而服务的。
解决的办法就是将你的变量定义在一个不同名字的命名空间中。
就好像财政局有个张三,公安局也有个张三,但我们清楚,就是因为他们分属不同的单位。
有些地方可能不太准确,但大致意思就是这样了。
WMI的命名空间创建了一个层次结构,有点类似于我们的目录文件结构。
1、root-作为所有其他名字的占位符;
2、root\default-与注册表操作有关的类;
3、root\security-与系统安全有关的类;
4、root\cimv2-从CIM派生的类,代表我们最常用的工作环境。
三、WMI的对象路径
WMI的对象路径用来在CIM库中定位类和它的事例,对象路径用两个反斜杠\\开头,第一个元素是目标计算机的名字,第二个元素是相应的WMI命名空间,第三个元素是相应的类名,并用:
将它与命名空间分隔开来。
\\..\root\cimv2:
win32_service
其中那个.代表是本地系统。
四、WMI的查询语言——WQL仅仅是ANSISQL的一个子集,只能用于数据的提取。
数据、事件查询的基本语法为:
Selectpro1,pro2,pro3frommyclass(myclassevent)
Selectname,pathfromWin32_share说明:
列出所有共享的名称和路径
也可以使用通配符*,例如:
Select*fromWin32_share
关键字Where用于限定查询的范围。
Select*fromWin32_sharewherename=”Admin”
五、WMI脚本中使用的三个步骤
步骤1:
连接到WMI服务
在任何WMI脚本中,第一个步骤都是建立一个到目标计算机上的Windows管理服务的连接。
方法是调用[作者:
临汾市外事旅游局薛靖澜,转载请注明出处]VBScript的Getobject函数并将WMI脚本库的名字对象的名称(即“winmgmts:
”,后跟目标计算机的名称)传递到Getobject,并返回一个对象的引用,此时,您就可以调用其提供的方法如:
InstancesOf,正如方法名所示,InstancesOf返回由资源的类名标识的托管资源的所有实例。
步骤2:
检索WMI托管资源的实例
一般采用WQL来实现。
步骤3:
显示WMI托管资源的属性
最后一个步骤是枚举检索得到集合的内容。
一般采用
Foreachenuminmyclass
…
Next结构来实现。
六、WMI测试器(wbemtest.exe)验证脚本执行结果
现在,您对可用于浏览和查看CIM的工具已经有了一些认识,让我们使用WMI测试器(wbemtest.exe)来检查Win32_Process类定义,以便从在您的本地计算机上运行的进程检索一些属性。
1.打开一个命令提示,键入C:
\>
wbemtest.exe,按下Enter来开始WMI测试器工具。
请注意,大部分按钮在主WMI测试器窗口上是被禁用的,这说明此时您没有连接到WMI。
2.单击“连接”按钮连接到本地或远程计算机上的WMI服务。
显示“连接”对话框,它提供一个标记为名称空间的文本输入区域,该区域默认值为root\default。
将名称空间区域的值更改为root\cimv2,单击“连接”对话框的连接按钮返回到主WMI测试器窗口。
3.主窗口中左上角的命名空间标识符应该显示为root\cimv2。
请注意,所有的按钮现在都已启用,这说明在当前凭据环境下,您已经成功连接到本地主机上的WMI。
单击枚举类别打开“超类信息”对话框。
4.在“超类信息”对话框中,不要填写输入超类别名称区域,单击递归选项,单击确定以枚举root\cimv2名称空间中定义的所有CIM类。
请注意,列于“查询结果”对话框顶部的类是以两个下划线为开头的。
这些是系统类。
系统类是预定义的CIM类,支持内部WMI配置与操作,例如提供程序注册、命名空间安全性及事件通知等。
现在,忽略系统类,向下滚动“查询结果”对话框直至看到以CIM_开头的类。
名称以CIM_开头的类是由DMTF维护的核心与公共基类。
继续向下滚动直至到达以Win32_开头的类。
名称以Win32_开头的类是Microsoft扩展类,表示Windows特定的托管资源。
如果这是您第一次检查root\cimv2命名空间,您可能希望熟悉root\cimv2命名空间中的类的完整集合,尤其是有Win32_前缀的类。
5.向下滚动“查询结果”对话框直至到达Win32_Process类,双击该类名打开Win32_Process对话框的对象编辑器。
6.“对象编辑器”对话框显示被选定类的定义和实现的详细信息(属性和方法)。
选择HideSystemProperties复选框隐藏系统属性。
临汾市外事旅游局薛靖澜,转载请注明出处]剩余的Win32_Process属性表示您可以从在本地或远程计算机上运行的进程检索的信息。
运行如下代码:
strComputer="
."
SetwbemServices=Getobject("
winmgmts:
&
strComputer)
SetwbemObjectSet=wbemServices.InstancesOf("
Win32_Process"
ForEachwbemObjectInwbemObjectSet
WScript.Echo"
Name:
"
wbemObject.Name&
vbCrLf&
_
Handle:
wbemObject.Handle&
ProcessID:
wbemObject.ProcessID
Next
7.在运行脚本之后,您可以用WIMI测试器验证脚本的结果。
在Win32_Process对话框的对象编辑器中,单击Instances。
产生的查询结果对话框列出在计算机上运行的进程的实例。
双击一个指定的进程实例,查看该实例的详细信息
阻止客人运行你不想运行的程序
很多人都有这样的经验,刚刚装好的系统,让人运行了一些你不想他运行的程序,比如说QQ,又是聊天,又是下载表情,不过一会,流氓插件、病毒、木马已经盘踞了你的计算机,常常是忍痛将这个程序卸载,可是不知情的人很自觉的下载安装,使整个系统无法正常运行。
其实用vbs和wmi结合起来,使你的计算机上有相应的程序安装,别人又无法运行起来太容易了,现在给出代码:
OnErrorResumeNext'
忽略所有的错误
Dimbag,pipe,honker,good
Do
good="
定义为本地计算机
setbag=getobject("
&
good&
\root\cimv2"
)'
l连接到cimv2命名空间
setpipe=bag.execquery("
select*fromwin32_processwherename='
qq.exe'
orname='
qqgame.exe'
winmine.exe'
)'
看,这是我的计算机上不允许运行的程序,qq、qqgame、winmine(扫雷)如果你还有其他的程序不允许运行,很简单,在其中添加orname='
你不允许运行的程序名'
foreachiinpipe
i.terminate()
msgbox"
发现盗版系统,现已进行功能限制!
临汾市外事旅游局薛靖澜,转载请注明出处]"
vbcrlf&
请使用正版软件!
,"
微软提示"
此行其实可有可无,有这行只是为了免去怀疑
next
wscript.sleep60000'
每1分钟检测一次
那么如果我自己想运行这些程序该怎么办呢?
临汾市外事旅游局薛靖澜,转载请注明出处]很简单,Ctrl+Alt+Del三个键齐按,打开windows任务管理器,在进程中结束Wscript.exe和wmiprvse.exe进程的运行就可以了
◎Vbs脚本编程简明教程之十四—使用dictionary对象
VBS中存在一个特殊的对象-dictionnary,是一个集合对象。
一般情况霞,我把这个特殊的集合想象为数组,可以使用其中内建的函数完成存储和操纵数据等基本任务,无须担心数据是在哪些行列,而是使用唯一的键进行访问或者是一个只能运行在内存中的数据库,并只有两个字段分别是:
key和item,在使用中,字段key是索引字段。
setsdict=CreateObject("
Scripting.Dictionary"
sdict.add"
a"
"
apple"
b"
banana"
c"
copy"
foreachkeyinsdict.keys
键名"
key&
是"
="
sdict(key)
next
sdict.removeall
这个脚本很简单,就是定义了一个dictionary对象的实例sdict,并加入了三条数据,然后对每一条数据进行了枚举,最后,将对象的实例清空。
Dictionary对象的成员概要
属性和说明
CompareMode设定或返回键的字符串比较模式
Count只读。
返回Dictionary里的键/条目对的数量
Item(key)设定或返回指定的键的条目值
Key(key)设定键值
方法和说明
Add(key,item)增加键/条目对到Dictionary
Exists(key)如果指定的键存在,返回True,否则返回False
Items()返回一个包含Dictionary对象中所有条目的数组
Keys()返回一个包含Dictionary对象中所有键的数组
Remove(key)删除一个指定的键/条目对
RemoveAll()删除全部键/条目对
◎Vbs脚本编程简明教程之十五—VBS内置函数
Abs函数:
返回数的绝对值。
Array函数:
返回含有数组的变体。
Asc函数:
返回字符串首字母的ANSI字符码。
Atn函数:
返回数值的反正切。
CBool函数:
返回已被转换为Boolean子类型的变体的表达式。
CByte函数:
返回已被转换为字节子类型的变体的表达式。
CCur函数:
返回已被转换为货币子类型的变体的表达式。
CDate函数:
返回已被转换为日期子类型的变体的表达式。
CDbl函数:
返回已被转换为双精度子类型的变体的表达式。
Chr函数:
返回与指定的ANSI字符码相关的字符。
CInt函数:
返回已被转换为整形子类型的变体的表达式。
CLng函数;
返回已被转换为Long子类型的变体的表达式。
Cos函数:
返回角度的余弦。
CreateObject函数:
创建并返回对“自动”对象的引用。
CSng函数:
返回已被转换为单精度子类型的变体的表达式。
CStr函数:
返回已被转换为字符串子类型的变体的表达式。
Date函数:
返回当前系统日期。
DateAdd函数:
返回的日期已经加上了指定的时间间隔。
DateDiff函数:
返回两个日期之间的间隔。
DatePart函数:
返回给定日期的指定部分。
DateSerial函数:
返回指定年月日的日期子类型的变体。
DateValue函数:
返回日期子类型的变体。
Day函数:
返回日期,取值范围为1至31。
Eval函数:
计算表达式并返回结果。
Exp函数:
返回e(自然对数的底)的多少次方。
Filter函数:
根据指定的筛选条件,返回含有字符串数组子集的、下限为0的数组。
Fix函数:
返回数的整数部分。
FormatCurrency函数:
返回的表达式为货币值格式,其货币符号采用系统控制面板中定义的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 很好的VBS教程 很好 VBS 教程