脚本编程教学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, 要提高水平只有靠自己,别人是帮不了你的
vbs/js脚本编程教学(2)
2020-06-30 10:51脚本之家 VBS
我们来看一看怎么利用fso来进行文件操作。Fso时vbs里进行文件操作的核心。作为黑客,不管学习什么语言,对文件的操作都应该是要了如指掌的,所以请大家仔细学习。
延伸 · 阅读
- 2021-12-09禁用VBS提高Windows 11性能,这个技巧必须要掌握
- 2021-11-13使用VBS创建快捷方式的代码
- 2021-11-13如何使用vbs 监控电脑活动记录
- 2021-11-13如何用VBS脚本收集远程计算机或本地计算机安装
- 2021-10-08Windows 11 VBS 安全功能导致性能下降,教你如何检
- 2021-10-08怎样在Windows 11中禁用VBS以提高性能?
精彩推荐
- VBS
可以定时自动关机的vbs脚本
这篇文章主要分享一段可以定时自动关机的vbs脚本代码,有需要的童鞋可以学习下...
- VBS
vbs base64 解密脚本代码
解密base64的vbs小函数,支持英文与数字不支持中文。...
- VBS
提供个可以显示农历的VBS代码
本文主要分享一段可以显示农历的VBS代码,具有一定的参考价值,有需要的朋友可以了解一下...
- VBS
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
你知道系统里有一个隐藏的宠物吗? 将以下代码保存为后缀为.vbs的文件,再双击运行,看看出来什么?一个可爱的魔法老人!还会说话、移动、吹喇叭…...
- VBS
VBS教程:属性-AvailableSpace 属性
VBS教程:属性-AvailableSpace 属性 ...
- VBS
VBS教程:对象-Folders 集合
VBS教程:对象-Folders 集合...
- VBS
VBS教程:正则表达式简介 -建立正则表达式
建立正则表达式 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。 可以...
- VBS
VBS教程:属性-VolumeName 属性
VBS教程:属性-VolumeName 属性...