CMD 中的 Robocopy 不复制父目录

Robocopy in CMD Doesn't Copy the Parent Directory

例如

folder3去哪儿了?

编辑 1: 假定在 folder3 中预先存在 folder4、folder5 和 folder6。

编辑 2:这就是我正在尝试的... robocopy /move /s /e "%1" "D:\library"

编辑 3:Registry code

编辑 4:Expected context menu in W10.

/MOVE 选项删除了源文件夹,在本例中为 folder3,复制到新目标后。

我看到您同时使用了 /s/e。我想你可能想简化你的命令并选择 /s,它不会复制空目录,或者选择 /e,它会复制空目录。

Robocopy 命令的基本语法是

robocopy 源目录 目标目录 [模式.. .] [选项]

如果没有给出 pattern,则默认模式为 *.*.

询问者可能说了类似的话

robocopy C:\folder1\folder2\folder3 D:\library  /move /s /e
         ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^  ^^^^^^^^^^^
             source directory       destination    options

此命令告诉 RoboCopy 将它在 C:\folder1\folder2\folder3 中找到的所有(*.* 中的默认模式)文件和目录移动到 D:\library。 Robocopy 做到了这一点。

要将目录folder3C:\folder1\folder2移动到D:\library,命令是

robocopy  C:\folder1\folder2\folder3  D:\library\folder3   /move /e
          ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^   ^^^^^^^^
                source directory         destination        options

如果需要,Robocopy 将创建 目标目录D:\library\folder3。请注意,选项 /e 表示 /s.

由于问题似乎是指如何在批处理文件中执行此操作,并且假设 %1 不以反斜杠结尾,我建议将 robocopy /move /s /e "%1" "D:\library" 替换为

robocopy /move /s /e "%1" "D:\library\%~nx1"