使用VBS访问外部文本文件一些方法和脚本实例代码

所属分类: 脚本专栏 / vbs 阅读数: 608
收藏 0 赞 0 分享
处理文件用到的常量有:ForReading = 1 ,ForWriting=2,ForAppending=8,用于的操作分别是读/写和追加,都要在使用之前用VBS Const来声明。常用于处理文本文件的方法有:Read(var)—读var个字符,ReadLine—读一行,ReadAll—读整个文件内容,SkipLine—跳过本行指向下一行,Write(var)—把字符串var写入文件,WriteLine(var)—把字符串var和换行符写入文件,WriteBlankLines(n)—写入n个换行符。
下面给出几个利用VBScript访问外部文件的例子:

1.创建一个新的文本文件,如果文件已经存在则报告错误:
复制代码 代码如下:

Rem 在当前盘根目录下创建"测试.txt"并写入一个字符串
VBS dim fso,file,filename
VBS filename="\测试.txt"
VBS Const ForWriting=2
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=-1
VBSCall Call MessageBox("发现错误!!!文件已经存在!!!")
Goto over
EndIf
VBS Set file=fso.CreateTextFile(filename,Ture)
VBS file.WriteLine("文件第一行,这是一个测试文件")
VBS file.Close
VBSCall Call MessageBox("测试文件创建成功!!!")
Rem over
EndScript

2.强行写入文件覆盖原有内容:
复制代码 代码如下:

Rem 在当前盘根目录下创建"测试.txt"并写入一个字符串
VBS dim fso,file,filename
VBS filename="\测试.txt"
VBS Const ForWriting=2
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=-1
VBSCall Call MessageBox("发现错误!!!文件已经存在!!!")
Goto over
EndIf
VBS Set file=fso.CreateTextFile(filename,Ture)
VBS file.WriteLine("文件第一行,这是一个测试文件")
VBS file.Close
VBSCall Call MessageBox("测试文件创建成功!!!")
Rem over
EndScript

3.往文件尾部追加内容:
复制代码 代码如下:

Rem 往当前盘根目录下的文件"测试.txt"末尾追加一个字符串
VBS dim fso,file,filename
VBS filename="\测试.txt"
VBS Const ForAppending=8
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=0
VBSCall Call MessageBox("发现错误!!!文件不存在!!!")
Goto over
EndIf
VBS Set file=fso.OpenTextFile(filename,ForAppending)
VBS file.WriteLine("测试追加字符串到文件末尾")
VBS file.Close
VBSCall Call MessageBox("追加字符串到文件成功!!!")
Rem over
EndScript

4.读取指定文件一行
复制代码 代码如下:

Rem 从当前盘根目录下的文件"测试.txt"读一行
VBS dim fso,file,filename,text
VBS filename="\测试.txt"
VBS Const ForReading=1
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=0
VBSCall Call MessageBox("发现错误!!!文件不存在!!!")
Goto over
EndIf
VBS Set file=fso.OpenTextFile(filename,ForReading)
VBS text=file.ReadLine
VBS file.Close
VBS text="从文件"&filename&"读取行成功!读到的字符串为:"&text
VBSCall Call MessageBox(text)
Rem over
EndScript

5.从指定文件行读取2个字符
复制代码 代码如下:

Rem 从当前盘根目录下的文件"测试.txt"读取2个字符
VBS dim fso,file,filename,text
VBS filename="\测试.txt"
VBS Const ForReading=1
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=0
VBSCall Call MessageBox("发现错误!!!文件不存在!!!")
Goto over
EndIf
VBS Set file=fso.OpenTextFile(filename,ForReading)
VBS text=file.Read(2)
VBS file.Close
VBS text="从文件"&filename&"读取2个字符成功!读到的字符为:"&text
VBSCall Call MessageBox(text)
Rem over
EndScript

6. ReadAll读取整个文件内容,大文件太占资源,不建议使用

//使用方法和ReadLine近似

7.SkipLine跳过当前行

//使用方法是file.SkipLine,仅用于只读属性打开的文件

8.测试文件行结束/文件结束
a.测试行结束
判断语句
If file.AtEndOfLine=-1
...
EndIf
//表达式为真的时候当前指针处于行末
b.测试文件结束
判断语句
If file.AtEndOfStream=-1
...
EndIf
//表达式为真的时候当前指针处于文件末

9.其他用于文件的函数或者叫方法功能有

a.file.Column 返回当前列号
b.file.Line 返回当前行号
c.file.FileExists(filename) 判断指定文件是否存在

最后强调一点,打开文件以后一定要记得关闭,以免发生数据错误,丢失数据。
更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多