Copy-Item不一致的行为?

时间:2016-05-23 13:31:53

标签: powershell copy-item

考虑这个目录结构:

C:\temp\A\file.txt
C:\temp\B

如果我运行命令

Copy-Item "C:\temp\A" "C:\temp\B\A" -Recurse -Force -ErrorAction Stop

我有

C:\temp\A\file.txt
C:\temp\B\A\file.txt

如果从这种新情况开始,我第二次运行相同的命令,我最终会用

C:\temp\A\file.txt
C:\temp\B\A\file.txt
C:\temp\B\A\A\file.txt

为什么结果不同虽然我运行相同的命令?

1 个答案:

答案 0 :(得分:3)

在第一种情况下,目标文件夹C:\temp\B\A不存在,因此Copy-Item创建(缺少的)目标文件夹并将源文件夹的内容复制到其中。

在第二种情况下,目标文件夹已存在,因此Copy-Item将整个源文件夹(包括文件夹本身)复制到(现有)目标文件夹。

要避免此行为,请确保复制前目标文件夹存在或不存在(取决于您是否要复制源文件夹"到#34;目标或" as"目的地)。使用Test-Path检查目的地是否存在,使用New-Item创建丢失的文件夹。