# DirMove

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

    DirMove Source, Dest , Flag

## 参数

Source

  类型: 字符串

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

Dest

  类型: 字符串

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

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

Flag

  类型: 字符串

  指定下列单个字符的其中一个:

  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"

dftg