VBScript Copy 方法
最后修改于 2025 年 4 月 9 日
VBScript 中的 Copy 方法是 FileSystemObject 的一部分。它允许将文件或文件夹从一个位置复制到另一个位置。此方法对于 VBScript 中的文件管理操作至关重要。它提供了一种简单的方法来复制文件,同时保持其内容和属性。
如果指定,Copy 可以覆盖现有文件。它同时适用于绝对路径和相对路径。本教程将通过实际示例介绍 Copy 方法,以演示其在文件操作中的各种应用。
Copy 方法概述
Copy 方法可用于 File 和 Folder 对象。对于文件,它将文件复制到新位置。对于文件夹,它会复制整个文件夹结构。该方法将目标路径作为必需参数。
一个可选的覆盖参数决定了目标存在时的行为。如果目标存在且覆盖设置为 False,则该方法会引发错误。理解此方法对于文件管理脚本至关重要。
基本文件复制
此示例演示了 Copy 方法最简单的用法,用于复制文件。它展示了如何将文件从一个位置复制到另一个位置。目标可以是完整的路径,也可以只是当前目录中的文件名。
Set fso = CreateObject("Scripting.FileSystemObject")
Set sourceFile = fso.GetFile("C:\Temp\source.txt")
sourceFile.Copy "C:\Backup\destination.txt"
WScript.Echo "File copied successfully"
Set sourceFile = Nothing
Set fso = Nothing
该脚本创建一个 FileSystemObject 并获取对源文件的引用。然后调用 Copy 方法并提供目标路径。如果成功,它将显示确认消息。所有对象在最后都会被正确清理。
带覆盖选项的复制
此示例展示了如何在复制文件时控制覆盖行为。第二个参数决定是否覆盖现有文件。当为 True 时,它允许覆盖;当为 False 时,它会阻止覆盖。
Set fso = CreateObject("Scripting.FileSystemObject")
Set sourceFile = fso.GetFile("C:\Reports\current.csv")
' True allows overwriting existing file
sourceFile.Copy "D:\Archives\backup.csv", True
WScript.Echo "File copied with overwrite enabled"
Set sourceFile = Nothing
Set fso = Nothing
该脚本将 CSV 文件复制到存档位置。True 参数确保任何具有相同名称的现有文件都将被替换。这对于希望进行覆盖操作的常规备份操作很有用。
复制多个文件
此示例演示了如何使用循环复制多个文件。它展示了如何处理文件夹中的所有文件并将它们复制到另一个位置。Files 集合用于遍历文件。
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\SourceFiles")
For Each file In folder.Files
file.Copy "D:\Backup\" & file.Name, True
Next
WScript.Echo "All files copied successfully"
Set folder = Nothing
Set fso = Nothing
该脚本获取源文件夹中的所有文件。每个文件都被复制到备份位置,同时保留原始文件名。所有复制操作都将覆盖参数设置为 True。这种模式在备份脚本中很常见。
复制整个文件夹
此示例展示了如何复制包含所有内容的完整文件夹。而是使用 FileSystemObject 的 CopyFolder 方法,而不是 Copy 方法。它会递归地复制所有子文件夹和文件。
Set fso = CreateObject("Scripting.FileSystemObject")
' Copy entire folder structure
fso.CopyFolder "C:\Projects\Website", "D:\Backup\Website", True
WScript.Echo "Folder copied with all contents"
Set fso = Nothing
该脚本将整个 Website 文件夹复制到备份位置。True 参数启用对目标中现有文件的覆盖。此方法对于创建文件夹结构的完整备份非常强大。
条件文件复制
此示例演示了基于文件属性的条件复制。它展示了如何仅复制满足特定条件的文件。在这种情况下,仅复制今天修改过的文本文件。
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\DailyLogs")
today = Date()
For Each file In folder.Files
If LCase(fso.GetExtensionName(file.Name)) = "txt" And _
DateValue(file.DateLastModified) = today Then
file.Copy "D:\Archive\" & file.Name, True
End If
Next
WScript.Echo "Conditional copy completed"
Set folder = Nothing
Set fso = Nothing
该脚本检查每个文件的扩展名和修改日期。仅复制今天修改过的 .txt 文件到存档。这演示了在复制之前的高级文件过滤。此类逻辑对于选择性备份操作很有用。
来源
在本文中,我们探讨了 VBScript 中的 Copy 方法,涵盖了它的用法和实际应用。从简单的文件复制到复杂的条件操作,这些示例都展示了可靠的文件复制。有了这些知识,您就可以通过强大的复制功能来增强您的文件管理脚本。