vbscript脚本编程教程2利用fso来进行文件操作

by sssa2000
我们来看一看怎么利用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, 要提高水平只有靠自己,别人是帮不了你的

(0)

相关推荐

  • 使用vbscript脚本在表单中进行选择的代码

    问: 嗨,Scripting Guy!我想创建一个带有四个单选按钮的表单,其中每个按钮各代表一台计算机.可以选择一个单选按钮,单击另一个按钮,然后脚本将在所选的计算机上运行.我怎样才能做到? -- CW 答: 嗨,CW.如果我们所说的只是 VBScript 和 Windows Script Host,那么这个问题很简单:办不到.除了显示消息框以外,VBScript 和 WSH 都无法创建图形用户界面:没办法通过脚本使用单选按钮.列表框.下拉列表以及其他图形元素. 但是--噢,你们以前一定见过这种

  • ASP/VBScript中CHR(0)的由来以及带来的安全问题分析

    该字符标识着字符串的结束,也称作null-terminated,这个给脚本编程尤其是ASP编程带来了一定的麻烦,很多人可能会问为什么要保留这个特殊字符,我们可以追溯到编写操作系统的语言之一C语言,学过C/C++的童鞋可能知道,在字符串中标识一个字符串结束靠的就是结尾的\0(NULL或者0),否则不能称作为字符串,只能说是字符串数组,任何对于字符串操作的函数如果传入的字符串丢掉了这个结束NULL字符,都有可能会出现异常. 复制代码 代码如下: char strbuf[] = "Hello"

  • ASP、vbscript编码模板

    <!-- METADATA TYPE="typelib" FILE="C:\Program Files\Common Files\System\ADO\msado20.tlb" --> <%@ Language=VBScript %> <%Option Explicit%> <% '加入的文件 %> <!-- #include virtual|file="需要包含的文件" --> <

  • ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

    在上一篇小编向大家简要介绍了 ASP 脚本语言之一 VBScript 的一些基本常识,本期将继续给大家讲解 VBScript 的脚本编写方法,并通过展示 VBScript 在 ASP 程序编写过程中的一系列实例使大家对 VBScript 有更进一层的理解.   函数和过程一样都是命名了的代码块,但它们却有很大的区别,过程完成程序任务,函数则返回值.我们可以这样理解,过程象一个完整的句子,而函数则象一个单词.举个例子,当你想获取某个数的平方根,你只要将该数传给 VBScript 的 Sqr() 函

  • JavaScript/VBScript脚本程序调试(Wscript篇)

    在实际工作中,我发现程序员对脚本抱怨最多的就是脚本程序很难调试这个缺点,特别是调试.vbs等WSH程序的时候,总是: 1. 在资源管理器里面双击一个.vbs文件. 2. 程序里面发生了一个错误,例如异常,或者编程逻辑错误. 3. 一行行阅读源文件,然后在估计发生错误的地方,添加很多的Msgbox.Show,打印一些变量的值. 4. 重新执行.vbs文件 5. "当当当",一系列的 "确定"点完了以后,人也晕了,重新回到第三步继续-- 其实我们也是可以用Visual

  • ASP基础知识VBScript基本元素讲解

    VBScript数据类型 VBScript只有一种数据类型,即Variant,称为变体型.Varriant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息.因为Variant是VBScript中惟一的数据类型,所以它也是VBScript中所有函数的返回值的数据类型. 最简单的Variant可以包含数字或字符串信息.Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理.也就是说,如果使用看起来像是数字的数据,则VBScript会假定其为数字并以适用于数字

  • 枚举域内计算机个数vbscript脚本(没环境,没测试)

    原来是微软专家的代码在这: http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey060127.mspx 我改成了全自动式的,不需要手要修改域的adsi连接字符串了,代码: 复制代码 代码如下: On Error Resume Next Set objRootDSE = GetObject("LDAP://rootDSE") strDomain = ObjRootDSE.Get("

  • 利用vbscript脚本修改文件内容,此适用于自动化的操作中

    利用vbscript脚本修改文件内容,此适用于自动化的操作中 '新建一个Replace.vbs脚本,脚本内容如下,程序运行时输入三个参数:查找内容,替换内容,文件 复制代码 代码如下: Dim FileName, Find, ReplaceWith, FileContents, dFileContents   Find = WScript.Arguments(0)   ReplaceWith = WScript.Arguments(1)   FileName = WScript.Argument

  • ASP(VBScript)中整除和取余

    整除 ASP(VBScript) 中整除用"\",比如 m = 5 \ 2,结果为 2. 取余 ASP(VBScript) 中取余用 mod,比如 m = 5 mod 2,结果为 1. 大数注意 m = 4444444444 / 2 n = 4444444444 \ 2 第一句是正确的,第二句运行时会报溢出错误,因为:在整除.取余操作前,数值表达式四舍五入为 Byte.Integer 或 Long 子类型表达式.Long 子类型的范围是 [-2147483648, 2147483647

  • 调试JavaScript/VBScript脚本程序(IE篇)

    这两种方式,都可以使用Visual Studio来进行调试,先看大家用得比较频繁的网页脚本程序的调试: 1. 要调试网页里面的脚本程序,调试器需要宿主程序-这里也就是IE的支持,实际上所有的脚本程序解释器都实现了一个COM的调试接口.调试器通过查询解释器的这个接口,可以设置断点,查询变量以及捕捉异常,当然,查询到这个接口,需要宿主程序同意--至于如何实现这个接口,我们会在以后的文章里面讲到. 2. 默认情况下,IE是将脚本调试支持功能关闭的,因此你需要显示地打开它.打开IE,点击"工具"

  • asp,VBscript语法错误,史上最全最详细最精确第1/3页

    ASP错误总结  -------------------------------------------------------------------------------- Microsoft VBscript语法错误(0x800A03E9)-->内存不足 Microsoft VBscript语法错误(0x800A03EA)-->语法错误 Microsoft VBscript语法错误(0x800A03EB)-->缺少 ':' Microsoft VBscript语法错误(0x800

  • ASP中一个用VBScript写的随机数类

    外国人写的一个class,这么一点小小的应用,除非有特殊需求,还没有必要模块化. 用asp产生一个随机数. <%  ''**************************************************************************  '' CLASS: cRandom  '' Calls randomize to seed the random number generator.  '' Provides functions for returning ra

  • ASP里面令人震撼地Debug类(VBScript)

    我想可能很多朋友都会用这样的方法"response.write ",然后输出相关的语句来看看是否正确.前几天写了一个千行的页面,里面大概有七八个SUB/FUNCTION,调试的时候用了有三十几个response.write ,天,调试完后把这三十个一个个删除,累! 今天看到一个ASP中的Debug类(VBS),试用了一下,绝! 使用方法很简单: test.asp 复制代码 代码如下: <!--#INCLUDE FILE="debuggingConsole.asp&quo

  • 用vbscript脚本实现返回 IP 配置数据的代码

    用以返回配置数据(类似于 IPCONFIG 命令返回信息)的 WMI 脚本.' Returning IP Configuration Data ' WMI script that returns configuration data similar to that returned by IpConfig. strComputer = "." Set objWMIService = GetObject("winmgmts:\\"& strComputer &

随机推荐

其他