当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > vbs/js脚本编程教学(2)

VBScript
用vbs检索在运行对话框中键入的一系列命令的代码
编写可以打开文本文件并打乱在该文件中所找到的单词顺序的vbs脚本
在 HTA 中暂停脚本的方法
运行脚本之前,如何确定计算机上的默认脚本宿主的代码
用vbs实现删除名称中有撇号的文件夹
用vbs将输出内容写到屏幕以覆盖当前屏幕上的内容的方法
用vbs实现配置无人登录计算机时使用的屏幕保护程序
用vbs更改 Internet Explorer 的标题栏
用vbs读取文本文件的最后一行
用vbs实现重新启动 Internet Explorer
用vbs实现禁用服务
用vbs确定计算机是否有 USB 2.0 端口的代码
用vbs列出注册表中 Run 项中的所有项目
用vbs将名称截断以使其最多包含 16 个字符的代码
用vbs将本地文件替换为在文件服务器上找到的新版本
用vbs确定脚本正在哪一个帐户下运行
用vbs确定可移动驱动器的连接时间
用vbs记录屏幕保护程序的开始时间和结束时间
用vbs计算某个词在日志文件中的出现次数
vbs病毒的简单例子源代码解析

VBScript 中的 vbs/js脚本编程教学(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 60 ::
收藏到网摘: n/a

脚本编程教学2
我们来看一看怎么利用fso来进行文件操作。Fso时vbs里进行文件操作的核心。作为黑客,不管学习什么语言,对文件的操作都应该是要了如指掌的,所以请大家仔细学习。
不说废话,先看fso由哪几个对象组成:

drive对象:包含储存设备的信息,包括硬盘,光驱,ram盘,网络驱动器
drives集合:提供一个物理和逻辑驱动器的列表
file 对象:检查和处理文件
files 集合:提供一个文件夹中的文件列表
folder对象:检查和处理文件夹
folders集合:提供文件夹中子文件夹的列表
textstream对象:读写文本文件

看看fso的方法:由于很多,所以我不会把每个的作用写出来,如果有不懂的,自己查一下msdn。不要说没有哦
bulidpath:把文件路径信息添加到现有的文件路径上
copyfile
copyfolder
createfolder
createtextfile
deletefile
deletefolder
dreveexits
fileexits
folderexists
getabsolutepathname:返回一个文件夹或文件的绝对路径
getbasename:返回一个文件或文件夹的基本路径
getdrive:返回一个dreve对象
getdrivename:返回一个驱动器的名字
getextensionname:返回扩展名
getfile:返回一个file对象
getfilename:返回文件夹中文件名称
getfolder
getparentfoldername:返回一个文件夹的父文件夹
getspecialfolder:返回指向一个特殊文件夹的对象指针
gettempname:返回一个可以被createtextfile使用的随机产生的文件或文件夹的名称
movefile
movefolder
opentextfile

好了,看到这里我想大家也明白了一大半,可能后面都不用我多说了,脚本就是这么简单,呵呵呵,还是继续把。

1、使用fso
由于fso不是wsh的一部分,所以我们需要建立他的模型
例如set fs=wscript.createobject(“scripting.filesystemobject”)
这样就建立了fso的模型。如果要释放的话也很简单,set fs=nothing

2、使用文件夹
创建:
在创建前我们需要检查是否存在,看一下程序
***************************createfolder.vbs*****************************
dim fs,s
set fs=wscript.createobject(“scripting.filesystemobject”)
if (fs.folderexists(“c:\temp”)) then
s=”is available”
else
s=”not exist”
set foldr=fs.createfolder(“c:\temp”)
end if
删除、拷贝、移动

删除:
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.deletefolder(“c:\windows”)

拷贝:
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.copyfolder “c:\data” “d:\data”
注意,如果这个时候c:\data 和d:\data都存在,会出错,复制也就会停止,如果要强制覆盖,使用fs.copyfolder “c:\data” “d:\data”,true

移动
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.movefolder “c:\data” “d:\data”

关于通配符:
我们可以使用统配符,来方便操作:
例如, fs.movefolder :c:\data\te*” , “d:\working”
注意到没有,我在目的路径最后没有使用“\” 也就是说我没有这样写:
fs.movefolder :c:\data\te*” , “d:\working\”
这样写的话,如果d:\working 目录不存在,windows就不会为我们自动创建这个目录。

还有一点,大家注意到没有 上面说的都没有涉及到folder对象,我们都是在利用fso提供的方法,当然利用folder一样可以的:
set fs= wscript.createobject(“scripting.filesystemobject”)
set f=fs.getfolder(“c:\data”)
f.delete ‘删除。如果有子目录,也会被删除
f.copy “d:\working”,true ‘拷贝到d:\working
f.move :”d:\temp” ‘移动到d:\temp

特殊文件夹
一般指的就是系统文件夹:\windows\system32, 临时文件夹,windows文件夹
看下面,我们使用环境变量来获得windows目录,关于环境变量我们会在后面详细讲道,如果我忘记了 请大家提醒我
set fs=wscript.createobject(“scripting.filesystemobject”)
set wshshell=wscript.createobject(“wscript.shell”)
osdir=wshshell.expandenvironmentstrings(“%systemroot%”)
set f =fs.getfolder(osdir)
wscript.echo f

当然,还有简单的方法 那就是使用getspecialfolder()
这个方法使用3种值:
0 表示windows文件夹,相关常量是windowsfolder
1 系统文件夹,相关常量是systemfolder
2 临时目录,相关常量temporaryfolder
看下面的例子:
***********************************getspecialfolder***************************
set fs=wscript.createobject(“scripting.filesystemobject”)
set wfolder=fs.getspecialfolder(0) ‘返回windows目录
set wfolder=fs.getspecialfolder(1) ‘返回system32\
set wfolder=fs.getspecialfolder(2)'返回临时目录

3、使用文件
使用文件属性:
文件夹的属性我没有说,大家可以从文件属性里举一反三
文件属性常用的就是:
normal 0
readonly 1
hideen 2
system 4

set fs=wscript.createobject(“scripting.filesystemobject”)
set f=fs.gerfile(“d:\index.txt”)
f.attributes=f.attributes+1

这里由于不知道d:\index.txt的文件属性,所以会发生不可预测的结果,如果文件的属性是0,那么就会变成1。所以最好在改变属性前查询

创建
创建前需要检查文件是否存在,方法和前面说的文件夹的方法一样
*****************************file.vbs**********************************
set fs=wscript.createobject(“scripting.filesystemobject”)
if fs.fileexists(“c:\asd.txt”) then
s=” available”
else
s=not exist”
set f=fs.createtextfile(“c:\asd.txt”)
end if
当然 我们也可以使用set f=fs.createtextfile(“c:\asd.txt”,true)
来强制覆盖已存在的文件。

复制移动删除文件
和文件夹一样 我们既可以使用fso提供的方法也可以用file对象
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.copyfile “c:\asd.txt”,”d:\1\asd.txt”,true ‘复制文件,如果已存在就强制覆盖
fs.movefile “c:\asd.txt”, “d:\” ‘移动
fs.deletefile “c:\asd.txt” ‘删除

好了,下一章我们就要学习文件的读写了,文件的读写是文件系统,尤其是黑客编程里面十分重要的一部分,今天打字可能有很多错误,大家看的时候仔细一点,不懂得多看看msdn, 要提高水平只有靠自己,别人是帮不了你的