2017-08-10 1 views
1

J'essaie de décompresser plusieurs fichiers zip dans un répertoire en utilisant un script Powershell. Tout se passe bien, sauf qu'il échoue toujours lors du dernier fichier zip dans le répertoire. Le fichier zip n'est pas corrompu - je peux le décompresser manuellement très bien. Il commence à extraire le contenu (je peux le voir être renseigné dans l'Explorateur Windows), mais vers la fin, il échoue, supprime le contenu extrait de ce fichier zip à partir de Windows Explorer, et jette l'erreur suivante:Extraction de fichiers zip avec Powershell échouant sur le dernier fichier zip.

Exception calling "ExtractToFile" with "3" argument(s). "Could not find a part of the path '<path-to-a-file-within-the-zip-archive>. 

Je ne suis pas sûr de savoir pourquoi cela se produit lorsque tous les autres zips décompresser très bien. J'ai également découvert que cela n'arrive pas chaque fois que j'extrais les fichiers dans le même répertoire que le script Powershell qui exécute ce code.

Voici mon code qui décompresse les fichiers:

Get-ChildItem .\ZipFilesDirectory-Filter *.zip | Expand-Archive -DestinationPath .\ExtractedZipFolders -Force 
+0

Photos prises dans l'obscurité. Est-ce qu'il échoue sur le dernier fichier ou toujours sur le dernier dans le dossier? Que se passe-t-il lorsque vous les traitez individuellement? c'est-à-dire pas dans un tuyau. Est-ce que quelque chose change si vous utilisez des chemins absolus plutôt que des chemins relatifs? – Matt

+0

Est-ce un problème avec cette archive, ou un problème avec votre script? Par exemple, fait une autre erreur d'archivage si vous supprimez le fichier incriminé? Est-ce que l'une des autres archives pourrait créer un fichier que la dernière archive veut créer en tant que dossier? –

+0

Il échoue toujours sur le dernier fichier zip dans le dossier - je ne peux pas déterminer quel fichier il échoue dans ce zip si. Les traiter individuellement fonctionne bien. Puisque ce script est destiné à être exécuté sur des ordinateurs différents, l'utilisation de chemins absolus n'est pas une option. – Roka545

Répondre

0

Il se trouve qu'il y avait un fichier dans mes archives zip qui a donné lieu à une question « chemin trop long » lors de l'extraction dans le répertoire désiré. Pour contourner ce problème, j'ai extrait l'archive sur mon lecteur C (C: /), puis l'ai déplacé dans le répertoire approprié.