Copy-Item将项目移动到另一个位置而不创建父目录

时间:2014-07-17 13:44:07

标签: powershell powershell-v2.0 powershell-v3.0

如果我想移动以下结构

Parent
  ChildParent
    ChildOfAChildParent

到以下位置:

NewParent
  NewChildParent <-- here

运行以下内容时,我得到以下内容

Copy-Item "\Parent\ChildParent\ChildOfAChildParent" -Destination "NewParent\NewChildParent" -Recurse

NewParent
  NewChildParent
    ChildOfAChildParent

这不是我想要的行为,我不知道如何实现。我只想将ChildOfAChildParent中的文件和文件夹转储到NewChildParent而不创建新的父目录。

3 个答案:

答案 0 :(得分:4)

我能够通过在路径中添加\*来解决此问题(Fewf),所以它实际上是:

Copy-Item "\Parent\ChildParent\ChildOfAChildParent\*" -Destination "NewParent\NewChildParent" -Recurse

答案 1 :(得分:0)

你告诉操作系统移动文件夹&#34; C&#34;来自&#34; A \ B \ C&#34;进入&#34; A \ B&#34;。即使您在GUI下使用鼠标右键单击执行此操作,结果也是相同的。 C将嵌套在B下。

您真正想要做的是将A \ B \ C \ D复制到A \ B中。所以训练中的Nerd给你的命令就是这样做的。因为您基本上将1个文件复制操作转换为x,其中x是匹配&#34; *&#34;的文件数。在A \ B \ C。

所以为了形象化,它变成了:

复制A \ B \ C \ d.1 A \ B \ d.1
复制A \ B \ C \ d.2 A \ B \ d.2
复制A \ B \ C \ d.3 A \ B \ d.3

答案 2 :(得分:-1)

我会使用move-item变量而不是copy-item。通过在move-item函数之后将您指定的项目从所选路径移动到当前活动目录中,这可以实现您正在寻找的目标。