CMD中的Robocopy不会复制父目录

时间:2019-01-07 20:55:08

标签: cmd move robocopy

例如

  • 我使用“ robocopy / move / s / e”
  • 剪切C:/ folder1 / folder2 / folder3 /
  • 并粘贴到D:/ library /
  • 但是我只得到D:/ library / folder4 / folder5 / folde6

folder3去哪了?

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

编辑2 :这就是我要尝试的内容……robocopy / move / s / e“%1”“ D:\ library”

修改3 Registry code

修改4 Expected context menu in W10.

2 个答案:

答案 0 :(得分:0)

在复制到新目的地之后,/MOVE选项删除了源文件夹 folder3

我看到您同时使用/s/e。我认为您可能想简化命令,然后选择/s(不会复制空目录)或/e(它将复制空目录)。

答案 1 :(得分:0)

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"