当我运行递归时 复制项目 从具有子文件夹的文件夹到包含与原始子文件夹相同的子文件夹的新文件夹,当子文件夹已存在时,它会引发错误。

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

例子:

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

Copy-Item : Item with specified name C:\realFolder_new\subFolder already exists.
有帮助吗?

解决方案

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

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

其他提示

如果你添加 -Force 根据您的命令,它将覆盖现有文件,并且您不会看到错误。

-Recurse 将替换每个文件夹和所有子文件夹中的所有项目。

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

您可以使用以下方式设置错误处理行为来忽略:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top