2012-02-24 8 views
13

Cuando ejecuto un elemento de copia recursivo desde una carpeta que tiene subcarpetas a una nueva carpeta que contiene las mismas subcarpetas que el original, arroja un error cuando las subcarpetas ya existe. ¿Cómo puedo suprimir esto porque es un falso negativo y puede hacer que los verdaderos fracasos sean más difíciles de ver?Powershell Suprimir copia de elemento 'La carpeta ya existe' error

Ejemplo:

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

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

Gracias.

-Jim

+0

¿Agregar -Fuerza resuelve el problema? –

Respuesta

14

Usted podría intentar capturar los errores que suceden, y luego decidir si usted se preocupa por él o no:

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

Gracias, esto funciona. Finalmente tuve la oportunidad de implementarlo y probarlo hoy :) – user1161625

7

Puede establecer el error de ignorar el comportamiento de manejo usando:

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

Sin embargo esto también va a eliminar los errores que qué desea saber!

+0

Sí ... eso solo ayuda :) ¿Ya existe un error en el cmdlet Copy-Item? Parece una pérdida de producción: si ya está allí y estaba a punto de crearlo, ¿a quién le importa ... al menos dame un interruptor -slientOnExistingDirs o -verbose, ¿verdad? Gracias por su ayuda. Pensaré en esa opción. – user1161625

5

Si agrega -Force a su mando que se sobreponen a las carpetas existentes y que no verá el error.

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