DirMove

移动文件夹, 及其所有子文件夹和文件. 它也可以重命名一个文件夹.

DirMove Source, Dest , OverwriteOrRename

参数

Source

类型: 字符串

源目录的名称(不含末尾的反斜杠), 如果未指定绝对路径, 则假定在 A_WorkingDir 中. 例如: C:\My Folder

Dest

类型: 字符串

目标目录的名称(不含末尾的反斜杠), 如果未指定绝对路径, 则假定在 A_WorkingDir 中. 例如: D:\My Folder.

注意: Dest 是目录在移动后使用的实际路径和名称; 它 不是 Source 移动到的目录(下面提到的已知限制除外).

OverwriteOrRename

类型: 字符串

如果省略,则默认为 0. 否则, 指定以下值之一, 来指示是否覆盖或重命名现有文件:

0: 不覆盖现有的文件. 如果 Dest 作为文件或目录已经存在, 则操作失败.

1: 覆盖现在的文件. 但是, Dest 中的任何文件或子文件夹如果在 Source 中没有对应文件都不会被删除. 已知限制: 如果 Dest 已作为文件夹存在, 并且与 Source 在同一个卷上, 则将 Source 移入其中而不是覆盖它. 为了避免这种情况, 请参阅下一个选项.

2: 与上面的模式 1 相同, 只是没有限制.

R: 重命名目录而不移动它. 尽管普通的重命名和移动具有相同的效果, 但如果您想要 "完全成功或完全失败" 的结果时它就会有用; 即您不希望由于 Source 或其中的某个文件被锁定(在使用中) 而只是部分移动成功. 尽管这种方法不能移动 Source 到另一个卷中, 但它可以移动到同一个卷中的其他任何目录. 如果 Dest 作为文件或目录已经存在, 则操作失败.

错误处理

如果发生错误, 则抛出异常.

备注

DirMove 移动单个文件夹到新位置. 要移动整个文件夹中的内容(它的所有文件和子文件夹, 不包括文件夹本身), 请参阅 FileMove 的示例部分.

如果源和目标在不同的卷或 UNC 路径中, 则会执行复制/删除操作而不进行移动.

DirCopy, FileCopy, FileMove, FileDelete, File-loops, DirSelect, SplitPath

示例

移动目录到新驱动器.

DirMove "C:\My Folder", "D:\My Folder"

简单地重命名.

DirMove "C:\My Folder", "C:\My Folder (renamed)", "R"

只有在同一个卷上, 文件夹可以被 "重命名到" 另一个位置.

DirMove "C:\My Folder", "C:\New Location\My Folder", "R"