ZetCode

VBScript MoveFile 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 MoveFile 方法是 FileSystemObject 的一部分。它将一个或多个文件从一个位置移动到另一个位置。此方法可以处理单个文件和多个文件的通配符模式。它通常用于文件管理和自动化脚本。

MoveFile 在一个步骤中执行移动和重命名操作。如果目标中有同名文件,它会覆盖现有文件。理解此方法有助于创建高效的文件管理脚本。

MoveFile 方法概述

MoveFile 方法接受两个参数:源和目标。源可以是单个文件路径或通配符模式。目标必须是文件应被移动的有效路径。该方法可通过 VBScript 中的 FileSystemObject 访问。

主要功能包括跨驱动器移动文件和处理通配符。如果源文件不存在或目标无效,它会引发错误。在同一卷内移动时,MoveFile 是原子操作。本教程通过实际示例涵盖 MoveFile

基本文件移动操作

此示例演示了 MoveFile 移动单个文件的最简单用法。它展示了如何指定源和目标路径。文件将从其原始位置移动到新目标。

basic_movefile.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:\Temp\test.txt"
destination = "C:\Backup\test.txt"

fso.MoveFile source, destination
WScript.Echo "File moved successfully"

Set fso = Nothing

该脚本创建一个 FileSystemObject 并调用 MoveFile。文件 "test.txt" 从 C:\Temp 移动到 C:\Backup。如果操作成功,将显示确认消息。完成后务必释放对象。

使用通配符移动多个文件

MoveFile 可以使用通配符模式移动多个文件。此示例演示了如何将所有文本文件从一个目录移动到另一个目录。通配符字符 (*) 匹配任何带有 .txt 扩展名的文件名。

wildcard_move.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:\Temp\*.txt"
destination = "C:\Backup\"

fso.MoveFile source, destination
WScript.Echo "All text files moved successfully"

Set fso = Nothing

C:\Temp 中的所有 .txt 文件都将移动到 C:\Backup。目标必须是后跟反斜杠的目录路径。原始文件名将保留。这对于批量文件操作很有用。

移动时重命名文件

MoveFile 可以在移动操作期间重命名文件。此示例演示了如何在移动文件时更改文件名。目标路径包含新文件名,而源指定原始文件名。

rename_move.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:\Temp\oldname.txt"
destination = "C:\Backup\newname.txt"

fso.MoveFile source, destination
WScript.Echo "File moved and renamed successfully"

Set fso = Nothing

文件 "oldname.txt" 将移动到 C:\Backup 并重命名为 "newname.txt"。这会将移动和重命名合并为一个操作。目标必须包含完整的新路径和文件名。

MoveFile 中的错误处理

此示例演示了使用 MoveFile 时的正确错误处理。它会捕获常见错误,如源文件丢失或路径无效。错误处理使脚本更加健壮和用户友好。

error_handling.vbs
On Error Resume Next

Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:\Temp\nonexistent.txt"
destination = "C:\Backup\file.txt"

fso.MoveFile source, destination

If Err.Number <> 0 Then
    WScript.Echo "Error moving file: " & Err.Description
    Err.Clear
Else
    WScript.Echo "File moved successfully"
End If

Set fso = Nothing

脚本尝试移动一个不存在的文件。错误被捕获并显示描述性消息。On Error Resume Next 可防止脚本因错误而终止。处理错误后务必清除错误对象。

在驱动器之间移动文件

MoveFile 可以在不同驱动器之间移动文件。此示例演示了将文件从 C: 驱动器移动到 D: 驱动器。该操作与在同一驱动器内移动的方式相同。

cross_drive_move.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:\Temp\data.dat"
destination = "D:\Archive\data.dat"

fso.MoveFile source, destination
WScript.Echo "File moved between drives successfully"

Set fso = Nothing

文件 "data.dat" 从 C:\Temp 移动到 D:\Archive。跨驱动器移动可能比同一驱动器内移动花费更长的时间。跨驱动器的操作不是原子操作。确保目标驱动器上有足够的空间。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 MoveFile 方法,涵盖了其用法和实际应用。从基本移动到错误处理,这些示例演示了可靠的文件操作。通过这些知识,您可以为文件管理脚本添加强大的移动功能。

作者

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

列出所有 VBScript 教程