论坛: 编程破解 标题: 怎样用VBScript对WINDOWS下的文件进行复制、删除、建立等操作? 复制本贴地址    
作者: wjhwjh5 [wjhwjh5]    论坛用户   登录
本帖由 [Aoming] 从 << 网站建设 >> 转移而来

怎样用VBScript对WINDOWS下的文件进行复制、删除、建立等操作?


地主 发表时间: 11/15 09:49

回复: tabris17 [tabris17]   论坛用户   登录
使用file system object




Microsoft Scripting Runtime包含一个对象模型--File System Object(即FSO模型,文件系统对象),可以访问宿主计算机的文件系统。
1.Scripting FSO 对象模型
表1 FSO对象模型中的对象与集合 
对象与集合 说明
File System Object 对象 这是FSO模型的基本对象。要生成File System Object对象才能访问FSO模型中的其他对象。
Drive 对象 可以从所有连接的驱动器设备访问磁盘驱动器信息,包括网络盘。
Drives 集合 提供连接系统的所有磁盘驱动器列表,不管其类型如何,不管是否有媒介(例如,光驱中即使没有光盘,也会在Drives集合中显示)。
File 对象 提供系统级文件访问。可以生成、删除或移动文件,也可以查询系统、文件信息,如文件名称、路径和其他属性
Files 集合 包含文件夹中的所有文件列表
Folder 对象 提供系统级文件夹访问。可以生成、删除或移动文件夹,也可以查询系统、文件夹信息,如名称、路径和其他属性
Folders 集合 包含文件夹中的所有文件夹(目录)列表
Text Stream 对象 可以读取和写入文本文件
创建FSO对象 
var fso = new ActiveXObject("Scripting.FileSystemObject");
注意:在网页中创建该对象时,IE会提示脚本调用的ActiveX控件可能不安全,需用户确认后方能继续运行;但在HTML应用程序中没有该提示。
2.访问文件
表2 FSO对象的方法
方法 描述
Drives()方法 返回盘符的集合
DriveExists()方法 检验磁盘驱动器是否存在
GetDriveName()方法 获取盘符
CreateFolder()方法 创建新文件夹
FolderExists()方法 检验一个文件夹是否存在
DeleteFolder()方法 删除一个文件夹
CopyFolder()方法 复制文件夹
MoveFolder()方法 移动文件夹
GetParentFolderName()方法 返回文件或文件夹的父文件夹名
GetSpecialFolder(常数)方法 获取特殊的文件夹的路径 (常数:0:安装Window的目录 1:系统文件所在目录 2:系统临时文件目录)
FileExists()方法 检验文件是否存在
DeleteFile()方法 删除一个文件
CopyFile()方法 复制文件
MoveFile()方法 移动文件
CreateTextFile()方法 生成一个文件流
OpenTextFile()方法 打开一个文件流
GetAbsolutePathName()方法 获取一个文件的绝对路径
GetFileName()方法 获取文件名(包括扩展名)
GetBaseName()方法 获取文件名(不包括扩展名)
GetExtensionName()方法 获取文件的扩展名
GetTempName()方法 生成一个临时文件对象,文件名以"rad"开头,后面跟随机数,扩展名为.tmp
注意:表示路径时传统的"\"要用"\\"代替,例如c:\\autoexec.bat
检查磁盘驱动器是否存在 DriveExists(盘符)
<SCRIPT LANGUAGE="JavaScript"> 
var fso = new ActiveXObject("Scripting.FileSystemObject");
hasDriveC = fso.DriveExists("c"); //检查系统是否有C盘存在,返回一个布尔值
hasDriveZ = fso.DriveExists("z"); //检查系统是否有Z盘存在
if (hasDriveC) alert("你的系统内有一个C盘");
if (!hasDriveZ) alert("你的系统内没有Z盘"); 
</SCRIPT> 
创建文件夹 CreateFolder(文件名)
<SCRIPT LANGUAGE="JavaScript"> 
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFolderName = fso.CreateFolder("c:\\yesky"); //在C盘上创建一个文件夹
</SCRIPT> 
复制文件 CopyFile(源文件, 目标文件,是否覆盖) 当覆盖值为true时,如果目标文件已经存在,会把原文件覆盖 
<SCRIPT LANGUAGE="JavaScript"> 
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bak"); 
</SCRIPT> 
  删除一个文件 DeleteFile(文件名, 参数) 如果目录的属性是只读的话,需要把参数值设为true 
  <SCRIPT LANGUAGE="JavaScript"> 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bat");//先把要删除的文件备份
fso.DeleteFile("c:\\autoexec.bat", true); //把C盘的autoexec.bat文件删除掉 
</SCRIPT>
以上几个例子包含了常用的操作类型,其他操作与此类似,例如复制文件和复制文件夹只是命令不同,参数完全一样。可以根据表2推演其他命令的使用方法,熟悉DOS的朋友应该可以很快掌握。如果需要每个方法的例子,请和我联系,限于篇幅,在此不一一列出。

3.其他FSO对象的属性与方法
   Drive,Folder,File对象各自包含许多的,也大都是些不常用到的属性和方法,在此仅举例说明几个常用命令。
更改文件(文件夹)名称
<SCRIPT LANGUAGE="JavaScript"> 
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\autoexec.bat"); //脚本将创建一个文件对象
f.Name="autoexec.bak"; //通过设置Name属性更改文件名
</SCRIPT> 
获取磁盘驱动器剩余空间
<SCRIPT LANGUAGE="JavaScript">
var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = fso.GetDrive("c:"); //脚本将创建C盘为一个驱动器对象
alert(d.FreeSpace); //FreeSpace属性检测磁盘驱动器剩余空间,以字节为单位
</SCRIPT>
检测驱动器是否准备就绪(主要用于检测软驱、光驱中是否有盘)
<SCRIPT LANGUAGE="JavaScript">
var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = fso.GetDrive("a:"); //脚本将创建A盘(软驱)为一个驱动器对象
alert(d.IsReady); //IsReady属性返回一个布尔值,表示驱动器是否准备就绪
</SCRIPT> 
File对象还可以检测文件属性,文件创建、最后修改、最后访问日期,文件大小,文件类型信息等等;Drive对象则可以检测驱动器空间,文件系统类型,磁盘序列号,磁盘卷标等等。这些属性不经常应用,在此不再赘述。需要的朋友请与我联系。
4.Text Stream对象
表3 Text Stream对象的属性和方法
属性和方法 说明
AtEndOfLine 属性 文件指针在行末时为True(行末即下一个字符为新行符)
AtEndOfStream 属性 文件指针在文件末时为True
Close() 方法 关闭与Text Stream对象相关联的文件
Column 属性 返回文件指针的当前列号(行中的字符位置)。第一个字符的列号为1。这是个只读属性。
Line 属性 返回当前行的行号。第一行的行号为1。这是个只读属性。
Write() 方法 在当前文件指针位置将指定字符串写入文件中
WriteLine() 方法 将指定字符串写入文件中并换行
WriteBlankLines() 方法 将空行写入文件中
Read() 方法 从文件读取指定字符数并返回文本
ReadAll() 方法 读取整个文本文件内容
ReadLine() 方法 读取文件下一行。这个方法返回读取的文本行,但不返回新行符。
Skip() 方法 在文件中向前跳过指定的字符数。
SkipLine() 方法 将文件指针移到下一行开头。
打开文本文件 
var ts =fso.OpenTextFile(文件名,参数) 
参数:控制文件打开方式的常数值。1为只读方式,2为写入方式,8将内容添加到文件末尾。
文件的类型不局限于.txt,任何扩展名都可以,只要其中保存的是文本信息,如.bat,.htm
<script language="JavaScript"> 
var path ="c:\\yesky.txt"; 
var fso =new ActiveXObject("Scripting.FileSystemObject");
var exist =fso.FileExists(path);//要打开的文件是否存在
if (!exist) fso.CreateTextFile(path);//如果不存在则创建该文件,访问根本不存在的文件会出错
var ts =fso.OpenTextFile(path,2); //以写的方式打开文本文件 
ts.Close(); //关闭文本
</script> 
将文本写入文件
TextStream对象只处理顺序文件。如果将文本添加到文件末尾是比较快的操作;而在非最后位置插入时要重写整个文件,会比较慢。我们通常是一次一行的读取和写入文件。 
通用步骤:
1. 打开文本文件 2. 写入内容 3. 关闭文本
例子:
<script language="JavaScript">
var path ="c:\\yesky.txt";
var date =new Date();
var fso =new ActiveXObject("Scripting.FileSystemObject");
var ts =fso.OpenTextFile(path,2); //以写的方式打开文本文件
ts.WriteLine("电脑报是学习电脑知识的好教材"); //将字符串写入文本第一行
ts.WriteLine("请访问天极网 http://www.yesky.com");//将字符串写入文本第二行
ts.WriteLine(date); //将变量写入文本
ts.Close(); //关闭文本
</script>
从文件中读取文本
其过程与写入类似,这里仅举例说明相关属性与方法的使用
<script language="JavaScript">
var path ="c:\\yesky.txt";
var str ="";
var fso =new ActiveXObject("Scripting.FileSystemObject");
var ts =fso.OpenTextFile(path,1); //以只读的方式打开文本文件
while(!ts.AtEndOfStream){str+=ts.ReadLine()+"\n"};//如果没有到达文件末尾则逐行读取文本
alert(str); 
ts.Close(); //关闭文本
</script>



B1层 发表时间: 11/16 11:13

回复: Sonyws [sonyws]   论坛用户   登录
弓虽~~~

Thx~~~~~

B2层 发表时间: 11/17 08:42

回复: wjhwjh5 [wjhwjh5]   论坛用户   登录
哈哈:D
太好了

B3层 发表时间: 12/18 14:47

回复: afan271314 [afan271314]   论坛用户   登录
好 这个我收了 

B4层 发表时间: 12/21 13:19

回复: afan271314 [afan271314]   论坛用户   登录
不对啊 楼主要是VBS  这是JAVAS啊 

B5层 发表时间: 12/21 13:40

回复: sghitxia [sghitxia]   论坛用户   登录
set a=createobject("scripting.filesystemobject")
set b=a.createtextfile("a.txt")
b.writeline "hello"

B6层 发表时间: 12/21 14:32

回复: xiaokai [xiaokai]   论坛用户   登录
关键是用了file system object对象,那是系统带的一个控件
VBS、JS都可以调用,无所谓用什么脚本语言实现

B7层 发表时间: 12/22 01:12

回复: lianjl [lianjl]   论坛用户   登录
谢谢,我也喜欢!收藏。

B8层 发表时间: 03-12-23 16:42

回复: henwuliao [henwuliao]   论坛用户   登录
good


B9层 发表时间: 03-12-27 19:45

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号