2012-02-24 97 views
13

當我將遞歸複製項目從具有子文件夾的文件夾運行到包含與原始文件夾相同的子文件夾的新文件夾時,它會在子文件夾已經存在。我怎樣才能壓制這個,因爲這是一個錯誤的否定,並且可以讓真正的失敗難以看清。PowerShell抑制複製項目'文件夾已存在'錯誤

例子:

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

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

謝謝。

-Jim

+0

是否加入-Force解決問題? – 2013-04-05 20:49:32

回答

14

你可以嘗試捕捉出現的任何錯誤,然後決定你是否在意與否:

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

謝謝,這個作品。最後有機會實現它並測試今天:) – user1161625 2012-03-09 18:20:26

7

您可以設置錯誤處理行爲使用忽視:

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

然而,這也將抑制你沒有想了解的錯誤!

+0

是啊......只有sorta有助於:) Copy-Item cmdlet中已經存在的一個bug?看起來像是浪費輸出 - 如果它已經在那裏,我即將創建它,那麼誰在乎......至少給我一個-slientOnExistingDirs或--verbose開關,對吧?感謝您的幫助,雖然..我會考慮這個選擇。 – user1161625 2012-02-24 22:21:53

5

如果添加-Force到您的命令時,將覆蓋現有的文件夾,你將不會看到錯誤。

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