2017-08-10 91 views
1

我想使用Powershell腳本解壓縮一個目錄中的多個zip文件。一切順利,除了在目錄中的最後一個zip文件期間它總是失敗。該zip文件沒有損壞 - 我可以手動解壓縮就好了。它開始提取的內容(我可以看到它被填充在Windows資源管理器),但隨後朝着失敗結束時,將刪除從Windows Explorer中的zip文件中提取的內容,並拋出了以下錯誤:Powershell在最後一個zip文件上失敗時提取zip文件。

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

我不確定爲什麼發生這種情況時,所有其他拉鍊解壓就好了。我還發現,只要將文件解壓縮到執行此代碼的Powershell腳本所在的目錄,就不會發生這種情況。

這裏是我的代碼,解壓縮文件:

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

在黑暗中拍攝。它在最後一個文件上失敗還是始終在文件夾中的最後一個上?當你單獨處理它們時會發生什麼。即不在管道中。如果你使用絕對路徑而不是相對路徑,有什麼改變嗎? – Matt

+0

這是檔案的問題,還是腳本的問題?也就是說,如果您刪除了違規的文件,會發生另一個歸檔錯誤?其他任何檔案可以創建最後一個檔案想要創建爲一個文件夾的文件嗎? –

+0

它始終在文件夾中的最後一個zip文件上失敗 - 我無法確定哪個文件在該zip文件中失敗。單獨處理它們的效果很好。由於此腳本旨在運行在不同的計算機上,因此使用絕對路徑不是一種選擇。 – Roka545

回答

0

原來有在我的zip壓縮包文件解壓縮到所需的目錄時,導致一個「路徑太長」的問題。作爲一種解決方法,我將存檔提取到我的C盤(C:/),然後將其移至正確的目錄。