# FileMoveDir

移动一个文件夹连同它的所有文件和子文件夹。也能重命名一个文件夹。

FileMoveDir, 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 在同一个 volume(卷) 上，Source 将被移入 Dest 而不是覆盖它。要避免这种情况，请看下一个选项。 2: 和上面的模式 1 相同，除了不存在那个限制。 R: 重命名目录而不是移动它。虽然重命名目录通常和移动的效果一样，但如果你想要 "all or none" 的表现时，它会很有用；就是说，当 Source 或它的部分文件被锁定时(在使用)你不想移动操作仅部分成功。尽管这种方法不能把 Source 移动到另一个卷，但能把它移到它所在卷的其他任何目录。如果 Dest 已经作为一个文件或目录存在，移动操作将失败。

#### ErrorLevel

如果发生了一个问题 ErrorLevel 会被设为 1，此外为 0。

#### 注意

FileMoveDir 移动单个文件夹到一个新的位置。要替代它移动一个文件夹的内容(它的所有文件和子文件夹)，请看 FileMove 的示例部分。

如果 source 和 destination 在不同的卷或 UNC(通用命名规则) 路径，一个复制/删除操作将被执行而不是移动。

#### 相关命令

FileCopyDir, FileCopy, FileMove, FileDelete, File-loops, FileSelectFolder, SplitPath

#### 示例

    FileMoveDir, C:\My Folder, D:\My Folder  ; 移动到一个新的驱动器。
    FileMoveDir, C:\My Folder, C:\My Folder (renamed), R  ; 简单的重命名.
    FileMoveDir, C:\My Folder, C:\New Location\My Folder, R  ; 文件夹可以 "重命名至" 另一个目录，只要都在同一盘符下。

翻译：天堂之门 menk33@163.com 2008年8月9日