8

在 Unix 上解压缩档案有很多方法:

目标是在 Windows 上找到所有存档并将它们解压缩到它们自己的目录(找到每个存档的位置)中。
可选的:

  • 解压后删除存档。
  • 如果一个存档在解压缩期间有任何问题,请记录任何错误消息。

我正在寻找一个普通的 DOS 命令行,例如使用7z.exe(包含在PeaZip的便携式版本中)。

4

2 回答 2

7

我从Sevenzip 项目的这个线程中获取了一个命令行,稍作修改:

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" 而不是 just FIND,因为我的(来自msysgitgowfind.exe上还有其他 ' ' 。PATH
  • &&DEL /F "%I"如果要保留存档,请删除 ' ' 部分。

我刚刚在两分钟内src.zipRational Team Concert SDK中解压缩了 470 " " 文件!

于 2012-04-11T14:04:11.873 回答
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 文件内容目标

随意在上一个答案中添加调试消息。在存储所有包含 zip 文件的子文件夹的文件夹中运行命令。

于 2016-01-22T22:15:33.090 回答