如何使用DOS命令以编程方式在Windows上的自己的目录中解压缩档案?

时间:2012-04-11 14:04:01

标签: windows recursion dos unzip

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

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

  • 解压缩后删除存档。
  • 如果一个存档在解压缩过程中出现任何问题,
  • 会记录任何错误消息。

我正在寻找普通DOS命令行,例如使用7z.exe(包含在PeaZip的可移植版本中)。

2 个答案:

答案 0 :(得分: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”(来自msysgit或{ {3}})。
  • 如果您想保留档案,请删除“&&DEL /F "%I"”部分。

我在两分钟内用gowRational Team Concert SDK解压缩了470“src.zip”!

答案 1 :(得分: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文件的所有子文件夹的文件夹中运行命令。