ZetCode

VBScript CreateTextFile 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 CreateTextFile 方法是 FileSystemObject 的一部分。它创建一个新的文本文件并返回一个用于写入的 TextStream 对象。此方法对于 VBScript 中的文件操作至关重要。它允许脚本生成日志文件、配置文件和其他基于文本的数据。

CreateTextFile 可选择覆盖现有文件或创建 Unicode 文件。它通过其参数控制文件创建行为。本教程将通过实际示例演示 CreateTextFile 在各种场景中的用法。

CreateTextFile 方法概述

CreateTextFile 方法接受三个参数:filename、overwrite 和 unicode。Filename 指定要创建的文件。Overwrite 确定是否应替换现有文件。Unicode 指定文件编码。

主要功能包括自动创建文件和返回文本流。它同时支持 ASCII 和 Unicode 文件格式。如果路径无效或权限不足,该方法会引发错误。了解此方法可以实现脚本中可靠的文件处理。

基本文本文件创建

此示例演示了 CreateTextFile 创建新文本文件的最简单用法。它展示了如何创建文件并写入一行。该脚本在当前目录中使用默认设置创建文件。

basic_createfile.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("example.txt")
file.WriteLine "This is a test file created with VBScript"
file.Close

Set file = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并调用 CreateTextFile。它向文件写入一行并关闭它。默认参数创建 ASCII 文件并覆盖现有文件。写入后务必关闭文件以确保数据已保存。

创建 Unicode 文本文件

此示例展示了如何使用第三个参数创建 Unicode 文本文件。Unicode 文件支持国际字符和特殊符号。该脚本演示了创建 Unicode 编码的文本文件。

unicode_file.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("unicode.txt", True, True)
file.WriteLine "This file contains Unicode text: こんにちは"
file.Close

Set file = Nothing
Set fso = Nothing

通过将第三个参数设置为 True,该脚本会创建一个 Unicode 文件。第二个参数(True)启用了覆盖现有文件。该文件包含英语和日语文本。Unicode 编码可以正确保留所有特殊字符。

附加到现有文件

要附加到现有文件而不是覆盖,请使用带有适当参数的 OpenTextFile。此示例显示如何向现有文件添加内容。它演示了文件追加作为创建的替代方法。

append_file.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
' Create file if it doesn't exist, open for appending if it does
Set file = fso.OpenTextFile("log.txt", 8, True)
file.WriteLine "New log entry: " & Now()
file.Close

Set file = Nothing
Set fso = Nothing

该脚本使用模式为 8(ForAppending)的 OpenTextFile。第三个参数(True)会在文件不存在时创建它。此方法对于日志文件和其他累积数据非常有用。每次运行都会添加一个新的带时间戳的条目。

带错误处理的文件创建

此示例演示了带错误处理的可靠文件创建。它检查潜在问题,如无效路径或权限问题。正确的错误处理使脚本在生产环境中更可靠。

error_handling.vbs
On Error Resume Next

Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("C:\restricted\test.txt")

If Err.Number <> 0 Then
    WScript.Echo "Error creating file: " & Err.Description
    Err.Clear
Else
    file.WriteLine "File created successfully"
    file.Close
End If

Set file = Nothing
Set fso = Nothing

脚本尝试在可能受限制的位置创建文件。On Error Resume Next 可防止脚本因错误而终止。代码检查 Err.Number 来检测故障。错误处理可实现优雅的失败,而不是难以理解的错误。

在循环中创建多个文件

此示例展示了如何以编程方式创建多个文本文件。它使用循环生成具有顺序名称的多个文件。每个文件接收基于其索引的唯一内容。

multiple_files.vbs
Set fso = CreateObject("Scripting.FileSystemObject")

For i = 1 To 5
    fileName = "report_" & i & ".txt"
    Set file = fso.CreateTextFile(fileName)
    file.WriteLine "This is report number " & i
    file.WriteLine "Generated on " & Now()
    file.Close
    Set file = Nothing
Next

Set fso = Nothing

该脚本创建五个名为 report_1.txt 到 report_5.txt 的文件。每个文件都包含其序列号和生成时间戳。循环演示了批量文件创建。此模式对于报表生成或数据导出非常有用。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 CreateTextFile 方法,涵盖了其用法和实际应用。从基本文件创建到带错误处理的高级场景,这些示例演示了可靠的文件操作。有了这些知识,您就可以通过强大的文件处理功能来增强您的脚本。

作者

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

列出所有 VBScript 教程