VBScript CopyFile 方法
最后修改于 2025 年 4 月 9 日
VBScript 中的 CopyFile
方法是 FileSystemObject
的一部分。它将一个或多个文件从一个位置复制到另一个位置。此方法在脚本中提供了灵活的文件复制功能。如果指定,它可以覆盖现有文件。该方法同时处理单个文件和通配符模式。
CopyFile
对于 VBScript 中的文件管理任务至关重要。它简化了备份操作和文件分发。本教程将通过实际示例介绍 CopyFile
的用法。您将学习各种复制场景和错误处理技术。
CopyFile 方法概述
CopyFile
方法接受三个参数:源、目标和覆盖标志。源可以是单个文件或通配符模式。目标必须是文件夹路径或目标文件名。覆盖标志决定是否替换现有文件。
主要功能包括通配符支持和可选的覆盖控制。该方法会为无效路径或权限问题引发错误。CopyFile
在复制过程中会保留文件属性。了解此方法有助于创建健壮的文件管理脚本。
基本文件复制
此示例演示了 CopyFile
复制单个文件的最简单用法。它展示了如何指定源和目标路径。文件将以相同的名称复制到新位置。
Set fso = CreateObject("Scripting.FileSystemObject") source = "C:\Temp\report.txt" destination = "C:\Backup\report.txt" fso.CopyFile source, destination Set fso = Nothing WScript.Echo "File copied successfully"
该脚本创建一个 FileSystemObject
并调用 CopyFile
。源文件 "report.txt" 被复制到 backup 文件夹。目标包括文件名。脚本通过消息确认完成。
使用通配符复制
此示例展示了如何使用通配符复制多个文件。星号 (*) 通配符匹配具有特定扩展名的所有文件。源文件夹中所有匹配的文件都将被复制到目标。
Set fso = CreateObject("Scripting.FileSystemObject") source = "C:\Logs\*.log" destination = "D:\Archive\" fso.CopyFile source, destination Set fso = Nothing WScript.Echo "All log files copied to archive"
该脚本将 C:\Logs 中的所有 .log 文件复制到 D:\Archive。目标指定为文件夹路径。每个文件都保留其原始名称。通配符支持对多个文件进行批量操作。
覆盖现有文件
此示例演示了 CopyFile
的覆盖参数。当设置为 True 时,现有文件将被替换。当设置为 False 时,如果目标已存在,操作将失败。如果省略,则默认为 True。
Set fso = CreateObject("Scripting.FileSystemObject") source = "C:\Data\config.ini" destination = "C:\Backup\config.ini" ' False prevents overwriting existing files fso.CopyFile source, destination, False Set fso = Nothing WScript.Echo "File copied (not overwritten if exists)"
该脚本尝试在不覆盖的情况下复制 config.ini。如果目标存在,则会发生错误。这可以防止意外数据丢失。生产脚本应添加错误处理。
复制到不同的文件名
此示例展示了如何在复制文件时更改其名称。目标包含一个新文件名。原始文件内容在新位置以新名称保留。
Set fso = CreateObject("Scripting.FileSystemObject") source = "C:\Reports\Q1.pdf" destination = "C:\Archives\Quarterly_Report_2025_Q1.pdf" fso.CopyFile source, destination Set fso = Nothing WScript.Echo "File copied with new name"
该脚本将 Q1.pdf 复制到一个新位置,并为其指定了一个描述性名称。源和目标都包含文件名。此技术对于版本控制或组织文件非常有用。原始文件保持不变。
CopyFile 中的错误处理
此示例演示了文件复制过程中的错误处理。VBScript 的 On Error Resume Next
可防止脚本因错误而终止。脚本会检查常见问题,例如文件丢失或访问被拒绝。
On Error Resume Next Set fso = CreateObject("Scripting.FileSystemObject") source = "C:\NonExistent\file.txt" destination = "C:\Backup\file.txt" fso.CopyFile source, destination If Err.Number <> 0 Then WScript.Echo "Error " & Err.Number & ": " & Err.Description Err.Clear Else WScript.Echo "File copied successfully" End If Set fso = Nothing
该脚本尝试复制一个不存在的文件。错误处理程序会捕获并显示问题。这种方法使脚本在实际场景中更加健壮。文件操作始终应包含错误处理。
来源
在本文中,我们探讨了 VBScript 中的 CopyFile
方法,涵盖了其用法和实际应用。从基本的文件复制到带有错误处理的高级场景,这些示例展示了可靠的文件操作。通过这些知识,您可以改进您的文件管理脚本。