2010-03-01 17 views
29

Ejecuto lo siguiente para descomprimir y quiero sobrescribir los archivos actuales si existen, pero el Microsoft solution no parece funcionar. No he encontrado nada que diga que funciona, ¿hay algún problema para seleccionar la opción "sí a todos"?¿Cómo sobrescribo los elementos existentes con Folder.CopyHere en PowerShell?

$zipPackage = (new-object -com shell.application).NameSpace($zipfilename) 
$destinationFolder = (new-object -com shell.application).NameSpace($destination) 
$destinationFolder.CopyHere($zipPackage.Items(),16) 

Respuesta

1

Mi remedio pragmática para este problema sería utilizar algo así como 7-Zip. Que tiene una interfaz de línea de comandos agradable de fácil uso desde dentro de PowerShell.

+0

Lo siento, no puedo cambiar la aplicación zip. Entonces, ¿hay forma de evitar el error de microsoft? – Bruce227

47

Si desea que sobrescriba Y sea silencioso, cambie 0x10 a 0x14 (docs).

$destinationFolder.CopyHere($zipPackage.Items(), 0x14) 
+1

Los indicadores funcionan cuando se extrae un archivo zip en una carpeta, que es lo que el OP está haciendo en su ejemplo, pero parecen ignorarse al crear un archivo zip :( – deadlydog

+3

Solo una cabecera, la carpeta especial Fonts no respeta las sobrecargas aprobado en el método CopyHere. – FoxDeploy

+0

@FoxDeploy, gracias por el aviso sobre la carpeta Fonts. –

Cuestiones relacionadas