7zip 命令行 - 找不到适用于档案的代码

7zip 命令行 - 找不到适用于档案的代码

我们正在将服务器迁移到新主机,并从 Server 2k8 机箱迁移到 Server 2012 机箱。有问题的服务器有几个驱动器,用于存放我们的网站和一些实用程序。这些驱动器在迁移过程中被完全复制。数据、文件夹结构和权限应该都相同。

最近在此服务器上运行Jenkins任务时,在日志中发现以下内容:

G:\Websites\PathToWebsite>G:\Jenkins\Tools\7z a -tzip Website_PROD_Backup_20140311_.zip

7-Zip [64] 9.20 版权所有 (c) 1999-2010 Igor Pavlov 2010-11-18

错误:7-Zip 找不到适用于档案的代码。

服务器上安装了 7-Zip,我可以从 GUI 执行它尝试执行的操作。我是一名开发人员,不习惯解决此类问题,而且在 Google 上搜索具体错误也没有找到任何解决方案。

我能找到的最接近的匹配项是一个网站,上面说如果命令行工具小于 150K,则需要几个 .dll 文件。我在上面引用的路径中找到了该工具,它超过了 150K。无论如何,我将 .dll 文件从安装目录复制到了该目录。这并没有解决问题。

我该怎么做才能解决这个问题?我真的需要 7-Zip 从命令行运行,否则我们的构建/部署过程的重要部分必须手动完成。

答案1

确保安装了 7-zip 命令行版本;它与 GUI 是分开的。您可以在此处下载:

http://www.7-zip.org/download.html

答案2

导致此错误的另一个原因是您有 7z.exe,但没有 7z.dll - 这两个文件都是命令行程序正常工作所必需的。只需从常规 7-zip GUI 安装文件夹复制这两个文件就足以在我们的 CI 上获得命令行程序的可移植版本。

答案3

在批处理文件中设置 exe 的路径,否则批处理程序将不知道 exe 位于何处。如果 exe 位于 c:\Prog~1 files\bin\7zip.exe

将路径设置为 c:\Prog~1 files\bin\

答案4

我在从 powershell 脚本运行“.\7z.exe”时遇到了类似的问题,问题是 .\“本地文件夹”中 7z.exe 的副本比我电脑上当前安装的版本要旧。为了解决这个问题,我只需将较新的 7z.exe 和 7z.dll 文件复制到脚本正在使用的本地文件夹中即可。

相关内容