2012-02-24 15 views
13

Po uruchomieniu rekursywnego obiektu do kopiowania z folderu z podfolderami do nowego folderu zawierającego te same podfoldery co oryginał, zgłaszany jest błąd, gdy podfoldery już istnieje. Jak mogę to powstrzymać, ponieważ jest on fałszywie ujemny i może sprawić, że rzeczywiste awarie będą trudniejsze do zauważenia.Powershell Suppress Copy-Item Błąd "Folder już istnieje"

Przykład:

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

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

Dziękuję.

-Jim

+0

Czy dodanie -Force rozwiązuje problem? –

Odpowiedz

14

Można spróbować uchwycenie ewentualnych błędów, które zdarzają się, a następnie zdecydować, czy dbasz o to, czy nie:

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

Dziękuję, to działa. W końcu otrzymam szansę na jego wdrożenie i test dzisiaj :) – user1161625

7

Można ustawić błąd obsługi zachowanie zignorować przy użyciu:

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

Jednak będzie to również stłumić błędy ty nie chcesz wiedzieć!

+0

Tak ... to tylko pomaga :) Czy już istnieje błąd w poleceniu cmdlet Copy-Item? Wydaje się, że to marnowanie produkcji - jeśli już tam jest i miałem zamiar go stworzyć, to kogo to obchodzi ... przynajmniej daj mi przełącznik -slientOnExistingDirs lub -verbose, prawda? Dziękuję za pomoc. Pomyślę o tej opcji. – user1161625

5

Jeśli dodać -Force do Waszej dyspozycji będzie zastąpić istniejące foldery i nie będzie widać błąd.

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse -Force 
Powiązane problemy