【问题标题】:How to extract ZIP files with WinRAR command line?如何使用 WinRAR 命令行提取 ZIP 文件?
【发布时间】:2010-11-21 21:18:04
【问题描述】:

在尝试提取 zip 文件时出现错误:

c:\path\name.zip 不是 RAR 压缩包
没有要提取的文件

我的代码是:

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} \"{0}\" * \"{1}\"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p\"{0}\"", passWord));

GUI版可以解压zip和7z文件。

为什么这不起作用?如何提取 zip 和 7z 文件?

(注意:我有不同的 7zip 源代码。我想我可以将两者合并,并且仅在文件具有 rar 扩展名时使用上述源代码。但我不喜欢那个解决方案。)

【问题讨论】:

  • 尝试改用 UnRAR.dll COM 库
  • 这是一个旧线程,但我来到这里问同样的问题。您现在可以从命令行使用 winrar.exe,它可以处理 zip 文件。

标签: command-line rar unrar winrar


【解决方案1】:
for /f "tokens=*" %G in ('dir /on /b "D:\BACKUP_DATI\EXCEL\OPER*.ZIP"') do "C:\Program Files\7-Zip\7z.exe" x  "..\%G" –aoa

参考延伸阅读:

【讨论】:

  • 我想我最终会使用 7z,但问题是使用 winrar 而不是 7z。
【解决方案2】:

WinRAR 的免费unrar.exe 和控制台版本Rar.exe 仅支持RAR 存档格式。这在Rar.exe 手册的第二段中有明确描述,它是WinRAR 的程序文件夹中的文本文件Rar.txt

您需要改用WinRar.exe,它还支持其他存档格式:

[path\winrar.exe] x [switches] [zip 文件的路径] [要解压的文件,. 对于所有文件] [要解压到的路径文件夹]

例子:

"%ProgramFiles%\WinRAR\winrar.exe" x -ibck c:\file.zip *.* c:\folder\

GUI 版本WinRAR.exe 的语法、命令和开关在WinRAR 的帮助中列出和描述。单击菜单项帮助主题上的菜单帮助,打开帮助选项卡目录命令行模式并阅读此项目下列出的帮助页面。

例如,只有WinRAR.exe 支持但Rar.exe 不支持的开关-ibck 用于在后台运行提取,这意味着WinRAR 的GUI 版本将提取最小化为一个图标Windows 系统托盘。

【讨论】:

  • 这适用于 .zip 和 .rar 档案。这是一个答案。
【解决方案3】:

您可以在应用程序中使用SevenZipSharpDotNetZip 库!

但我会选择SevenZipSharp Lib,因为它支持 7-Zip 支持的所有档案!

源代码和二进制文件都在链接中可用!

【讨论】:

    【解决方案4】:

    rar.exe确实只能解压rar文件。和 WinRAR 完全不一样。

    要在 .NET 中解压 ZIP 文件,您可能需要查看 DotNetZip 库。与 CSharpZipLib 不同,它具有与商业软件兼容的许可证。

    如果您还需要支持 RAR,您可以使用带有 pinvoke 的 UnRAR.dll:
    http://www.rarlab.com/rar_add.htm
    http://www.rarlab.com/rar/UnRARDLL.exe

    或者这个 .NET unRAR 库:
    http://www.chilkatsoft.com/rar-dotnet.asp

    也许this one 用于 7zip。

    【讨论】:

      猜你喜欢
      • 2011-04-19
      • 1970-01-01
      • 2016-10-30
      • 2018-08-18
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多