2012-04-11 44 views
6

有很多方法來解壓在Unix檔案:如何使用DOS命令以編程方式將檔案解壓到Windows自己的目錄中?

的目標是要找到所有的檔案,並在自己的目錄解壓它們(其中每個存檔中找到) 在Windows上
可選:

  • 刪除解壓縮後的壓縮文件。
  • 記錄任何錯誤消息,如果一個檔案在解壓縮過程中有任何問題。

我尋找一個純DOS命令行,使用,例如,7z.exe(其被包括在PeaZip便攜式版本)。

回答

7

我把一個命令行從this thread of the sevenzip project,用小修改:

FOR /R %I IN (*src.zip) DO (C:\apps\peazip_portable-3.8.WINDOWS\res\7z\7z.exe x "%I" -aoa -o"%~dpI\*" |c:\windows\system32\find.exe "Everything is Ok" >nul &&DEL /F "%I" ||ECHO.%I : EXTRACT FAIL - ARC NOT DELETED >>ERR.TXT) 

(可見性的多線)

FOR /R %I IN (*src.zip) DO (\ 
    C:\apps\peazip_portable-3.8.WINDOWS\res\7z\7z.exe x "%I" -aoa -o"%~dpI\*" 
    |c:\windows\system32\find.exe "Everything is Ok" >nul &&DEL /F "%I" 
    ||ECHO.%I : EXTRACT FAIL - ARC NOT DELETED >>ERR.TXT) 

注:

  • 我更喜歡指定「c:\windows\system32\find.exe」而不僅僅是FIND,因爲我有其他'find.exe'在我的PATH(從msysgitgow)。
  • 如果要保留檔案,請刪除'&&DEL /F "%I"'部分。

我只用兩分鐘就從Rational Team Concert SDK解壓470「src.zip」!

0

這是一個老問題,但有人可能會覺得這很有用。此方法適用於使用WinZip和WinZip命令行插件,這兩種插件均可在WinZip站點上爲註冊用戶使用。

FOR /R %I IN (*.zip) DO (C:\Program Files (x86)\winzip\wzunzip.exe -ye "%I" "%~pI") 

-ye將命名zip文件名後的文件夾。 %I是zip文件名 %〜pI是壓縮文件的內容目的地

隨意在上一個答案中添加調試消息。在包含您的zip文件的所有子文件夾存儲在的文件夾中運行該命令。

相關問題