ZetCode

VBScript OpenTextFile 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 OpenTextFile 方法是 FileSystemObject 的一部分。它打开指定的文件并返回一个 TextStream 对象。该对象可以从文件中读取、写入或追加内容。该方法在 VBScript 中提供了灵活的文件处理功能。

OpenTextFile 支持不同的模式:读取、写入和追加。如果文件不存在,它也可以创建新文件。本教程将通过实际示例演示 OpenTextFile 的用法。

OpenTextFile 方法概述

OpenTextFile 方法接受三个参数:filename(文件名)、IOMode(IO 模式)和 create(创建)。Filename 指定要打开的文件。IOMode 确定访问模式。Create 参数指定是否在文件丢失时创建新文件。

主要功能包括逐行读取整个文件、写入新内容以及追加到现有文件。该方法返回一个用于文件操作的 TextStream 对象。理解此方法对于 VBScript 中的文件处理至关重要。

读取文本文件

此示例演示了如何使用 OpenTextFile 逐行读取文本文件。它展示了基本的读取模式操作。脚本打开文件并将其内容输出到控制台。

read_file.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\temp\example.txt", 1) ' 1 = ForReading

Do Until file.AtEndOfStream
    line = file.ReadLine
    WScript.Echo line
Loop

file.Close
Set fso = Nothing

脚本创建一个 FileSystemObject 并打开一个文件进行读取。它逐行读取直到文件末尾。每一行都使用 WScript.Echo 显示。最后,它关闭文件并清理资源。

写入新文件

此示例演示如何创建新文本文件并向其中写入内容。OpenTextFile 方法用于写入模式。如果文件存在,它将被覆盖。

write_file.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\temp\output.txt", 2, True) ' 2 = ForWriting

file.WriteLine "This is line 1"
file.WriteLine "This is line 2"
file.Write "This will be on line 3"

file.Close
Set fso = Nothing

脚本以写入模式(模式 2)打开文件,并将 create 参数设置为 True。它使用 WriteLine 写入两行,使用 Write 写入一行。WriteLine 添加换行符,而 Write 不添加。如果文件不存在,它将自动创建。

追加到现有文件

此示例演示如何将内容追加到现有文件。追加模式(8)在末尾添加新内容,而不会覆盖现有数据。这对于日志文件非常有用。

append_file.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\temp\log.txt", 8, True) ' 8 = ForAppending

file.WriteLine "New log entry: " & Now()

file.Close
Set fso = Nothing

脚本以追加模式(8)打开文件。它添加包含当前日期和时间的新行。如果文件不存在,由于 True 参数的存在,它将被创建。每次运行都会追加新行,而不会影响现有内容。

一次性读取整个文件

此示例展示了如何一次性读取文件的全部内容。TextStream 对象的 ReadAll 方法将所有内容加载到内存中。这对于小文件很有用。

read_all.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\temp\data.txt", 1) ' 1 = ForReading

content = file.ReadAll
WScript.Echo content

file.Close
Set fso = Nothing

脚本以读取模式打开文件,并使用 ReadAll 获取所有内容。所有内容都存储在 content 变量中并显示出来。这种方法更简单,但对于大文件会占用更多内存。

在打开前检查文件是否存在

此示例演示了在尝试打开文件之前检查文件是否存在。FileExists 方法可防止文件丢失时出现错误。这是编写健壮脚本的好习惯。

check_exists.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
filePath = "C:\temp\important.txt"

If fso.FileExists(filePath) Then
    Set file = fso.OpenTextFile(filePath, 1)
    content = file.ReadAll
    WScript.Echo content
    file.Close
Else
    WScript.Echo "File not found: " & filePath
End If

Set fso = Nothing

脚本首先使用 FileExists 检查文件是否存在。如果找到,它会打开并读取文件。如果找不到,它会显示错误消息。这种方法可以防止因文件丢失而导致的运行时错误。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 OpenTextFile 方法,涵盖了其用法和实际应用。从读取、写入到追加和检查存在性,这些示例演示了全面的文件处理。有了这些知识,您就可以在 VBScript 项目中实现健壮的文件操作。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有多年的编程经验。我自 2007 年以来一直在撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有八年以上的经验。

列出所有 VBScript 教程