FileMoveDir

AutoHotKey

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 目录中文件覆盖的其他子目录或文件.已知限制:如果在同一个卷上存在和 Source 相同的 Dest 文件夹,则 Source 会被移入到这个文件夹中而不覆盖它.要避免此问题, 请参阅下一个选项.

2: 与上面的模式 1 相同, 不过不存在那个限制.

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

ErrorLevel

[v1.1.04+] 此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误.

如果遇到问题则 ErrorLevel 被置为 1, 否则为 0.

备注

FileMoveDir 移动单个文件夹到新位置. 要移动整个文件夹的内容 (它的所有文件和子文件夹), 请参照 FileMove 的示例部分.

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

相关

FileCopyDir, FileCopy, FileMove, FileDelete, 文件循环, 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  ; 只有在同一个卷上,文件夹可以被"重命名到"另一个位置.