Powershell 复制项的行为因目标文件夹是否存在而不同

Powershell 复制项的行为因目标文件夹是否存在而不同,powershell,Powershell,简单任务,我正在尝试将以下文件/文件夹结构复制到新位置(source2): 使用以下命令: Copy-Item C:\source C:\source2 -Recurse -Force 这将在第一次运行时产生所需的输出: c:\ ----source2 --------source 但是,在第二次运行时,它会在“源”下创建一个额外的“源”文件夹,即: 这是为什么?使脚本可重复的正确方法是什么?这应该可以: Copy-Item C:\source\* C:\source2 -Recurse -

简单任务,我正在尝试将以下文件/文件夹结构复制到新位置(source2):

使用以下命令:

Copy-Item C:\source C:\source2 -Recurse -Force
这将在第一次运行时产生所需的输出:

c:\
----source2
--------source
但是,在第二次运行时,它会在“源”下创建一个额外的“源”文件夹,即:

这是为什么?使脚本可重复的正确方法是什么?

这应该可以:

Copy-Item C:\source\* C:\source2 -Recurse -Force
这似乎是一个错误

复制项目令人困惑,因为在复制文件夹时 目标不存在它假定您正在尝试复制/重命名 源是目标,而如果目标存在,则为 假设您试图在它下面复制

这真是令人讨厌的行为,你可以通过投票来改变它 在这里投票表决这个问题


不幸的是,问题链接已失效。

这会产生奇怪的行为。如果c:\source2尚不存在,则会在c:\source2中创建一个名为“source2”的空文件(而不是文件夹)?请在重复的问题中查看我的原始问题。
c:\
----source2
--------source
------------source
Copy-Item C:\source\* C:\source2 -Recurse -Force