PowerShell - 禁止复制项'文件夹已存在'错误

时间:2012-02-24 17:01:43

标签: powershell copy-item

当我从具有子文件夹的文件夹中运行递归Copy-Item到包含与原始文件夹相同的子文件夹的新文件夹时,它会在子文件夹已存在时抛出错误。

我怎样才能抑制这种情况,因为它是假阴性并且可以使真正的失败更难看?

示例:

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse

Copy-Item : Item with specified name C:\realFolder_new\subFolder already exists.

3 个答案:

答案 0 :(得分:16)

您可以尝试捕获发生的任何错误,然后决定您是否关心它:

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse -ErrorVariable capturedErrors -ErrorAction SilentlyContinue
$capturedErrors | foreach-object { if ($_ -notmatch "already exists") { write-error $_ } }

答案 1 :(得分:9)

如果您在命令中添加-Force,它将覆盖现有文件夹,您将看不到错误。

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse -Force

答案 2 :(得分:7)

您可以使用以下命令将错误处理行为设置为忽略:

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse -ErrorAction SilentlyContinue

然而,这也会抑制 想要了解的错误!