如何使用 7zip 命令行从每个选定目录创建单独的 7z 文件?

如何使用 7zip 命令行从每个选定目录创建单独的 7z 文件?
FOR %i IN (*.*) DO 7z.exe a "%~ni.7z" "%i"

为每个选定的文件执行该作业。

但是我有大量的目录(显然里面有文件)需要打包。

假设我有 d:\dir1、d:\dir2、d:\dir3、d:\dir4。我需要 7zip 按照如下方式打包它们:

e:\dir1.7z,e:\dir2.7z,e:\dir3.7z,e:\dir4.7z。

我如何在 7zip 命令行中执行此操作?

答案1

在命令提示符下,你可以使用如下命令:

FOR /D %i IN (d:\dir*.) DO 7z.exe a "e:\%~ni.7z" "%i"

在批处理文件中您需要:

FOR /D %%i IN (d:\dir*.) DO 7z.exe a "e:\%%~ni.7z" "%%i"

FOR顺便说一句,您可以通过输入以下命令获取命令帮助:

help for

在命令提示符下。

请注意,7-zip 有一个单独的命令行版本,7za.exe您可能希望使用它来代替7z.exe。它位于一个单独的.7z文件下载中,标题为“7-Zip Extra:独立控制台版本”,您可以在7-Zip 下载页面。该档案包含多个文件,其中两个是小型控制台 za.exe 文件和一个单独的7za.dll库文件,前者用于完成繁重的工作 — — 这正是您所需要的。

答案2

如果您有大量目录,使用通配符可能会达到一些系统限制。

赛格威或其他适用于 Windows 的 Unix 工具Unx工具类,你可以使用'find'如下Unix命令:

cd <source directory>
find . -mindepth 1 -maxdepth 1 -type d -exec 7za a /<destination directory>/{}.7z {} \;

'-mindepth'避免返回当前目录非常重要'find'

相关内容