很好的VBS教程 二Word文件下载.docx

上传人:b****4 文档编号:8145367 上传时间:2023-05-10 格式:DOCX 页数:15 大小:25.84KB
下载 相关 举报
很好的VBS教程 二Word文件下载.docx_第1页
第1页 / 共15页
很好的VBS教程 二Word文件下载.docx_第2页
第2页 / 共15页
很好的VBS教程 二Word文件下载.docx_第3页
第3页 / 共15页
很好的VBS教程 二Word文件下载.docx_第4页
第4页 / 共15页
很好的VBS教程 二Word文件下载.docx_第5页
第5页 / 共15页
很好的VBS教程 二Word文件下载.docx_第6页
第6页 / 共15页
很好的VBS教程 二Word文件下载.docx_第7页
第7页 / 共15页
很好的VBS教程 二Word文件下载.docx_第8页
第8页 / 共15页
很好的VBS教程 二Word文件下载.docx_第9页
第9页 / 共15页
很好的VBS教程 二Word文件下载.docx_第10页
第10页 / 共15页
很好的VBS教程 二Word文件下载.docx_第11页
第11页 / 共15页
很好的VBS教程 二Word文件下载.docx_第12页
第12页 / 共15页
很好的VBS教程 二Word文件下载.docx_第13页
第13页 / 共15页
很好的VBS教程 二Word文件下载.docx_第14页
第14页 / 共15页
很好的VBS教程 二Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

很好的VBS教程 二Word文件下载.docx

《很好的VBS教程 二Word文件下载.docx》由会员分享,可在线阅读,更多相关《很好的VBS教程 二Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

很好的VBS教程 二Word文件下载.docx

一、文件属性:

在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函数:

返回的表达式为货币值格式,其货币符号采用系统控制面板中定义的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2