web-dev-qa-db-ja.com

PowerShell-Copy-Item 'Folder already exists'エラーの抑制

サブフォルダーがあるフォルダーから、元のフォルダーと同じサブフォルダーを含む新しいフォルダーに再帰 Copy-Item を実行すると、サブフォルダーが既に存在する場合にエラーがスローされます。

これは偽陰性であり、真の失敗が見にくくなる可能性があるため、どうすれば抑制できますか?

例:

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

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

発生したエラーをキャプチャして、それを気にするかどうかを決めることができます。

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

コマンドに-Forceを追加すると、既存のファイルが上書きされ、エラーは表示されません。

-Recurseは、各フォルダーおよびすべてのサブフォルダー内のすべてのアイテムを置き換えます。

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

以下を使用して、エラー処理動作を無視するように設定できます。

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

しかし、これはあなたが知りたいエラーも抑制しますdid知りたい!

7
Andy Arismendi