如何让 7-zip 处理一大堆文件夹

Kdg*_*Dev 20 batch 7-zip

我得到了一堆必须裁剪成 800x600 像素的图片。这很容易完成,但现在我必须上传它们,以便家人可以看到它们。

问题是,这是 500MB 的图片。我决定简单地压缩单独的文件夹,每个文件夹包含几乎相等数量的图片。这样我可以每天上传一对。手动执行此操作是一项非常漫长而艰巨的工作。我想知道是否有办法让 7-zip 单独处理每个文件夹?

我想我需要一个批处理文件来做到这一点,但我对此并不擅长。我把所有东西都放在一个文件夹下。在各个子文件夹中是图片所在的位置。我需要的是压缩该文件夹的内容。我不确定我是否可以将文件夹连同它一起压缩。我知道 PHP 有一个 zip 模块,我从来没有使用过它,所以我不确定它是否可以处理 zip 的内容是一个包含项目的文件夹,而不仅仅是项目的事实。

ele*_*n81 29

从工作目录是您的My Pictures目录的命令提示符运行,此命令将创建每个子目录内容的 zip 文件,将所有 zip 文件保留在您的My Pictures目录中。

编辑:我添加了必要的引号,以允许名称中包含空格的目录。

for /D %%d in (*.*) do 7z a -tzip "%%d.zip" "%%d"
Run Code Online (Sandbox Code Playgroud)

另外:以下版本不会将文件放在 zip 文件内的子目录中,而是放在其根目录中:

for /D %%d in (*.*) do 7z a -tzip "%%d.zip" ".\%%d\*"
Run Code Online (Sandbox Code Playgroud)

在 Windows 7 及更高版本中

for /D %d in (*.*) do 7z a -tzip "%d.zip" "%d"
Run Code Online (Sandbox Code Playgroud)

或者

for /D %d in (*.*) do 7z a -tzip "%d.zip" ".\%d\*"
Run Code Online (Sandbox Code Playgroud)

  • 这对我很有用,尽管我不得不将 `%%d` 更改为 `%d`,因为我的 Win 7 框抱怨 var 名称太长,抛出“%%d 此时是意外的”错误。 (6认同)

小智 8

我无法让命令行工作,而是下载了 WinRAR 并且mtone是正确的 - WinRAR 确实可以选择将多个文件夹压缩到它们自己单独的 ZIP 文件中。

例如,C:\Files\Fables 01进入C:\Files\Fables 01.zipC:\Files\Fables 02进入C:\Files\Fables 02.zip

使用 WinRAR,打开包含您要压缩的文件夹的文件夹,然后按照以下步骤操作:

  • 选择您想要压缩/稀有的所有文件夹
  • 单击“添加”或“ Alt+”A或“命令”->“将文件添加到存档”
  • 选择 RAR 或 ZIP
  • 转到“文件”选项卡
  • 选中“存档”框下的“将每个文件放入单独的存档”

当您修复了您喜欢的任何其他设置后,点击 OK 并繁荣:多个文件夹的多个 ZIP 文件。这比命令行 7zip 容易得多。


ror*_*yok 5

只是对 1181 的回答稍作更新:下面的代码创建了一个批处理文件,可以将多个项目放入其中。

@echo off
if [%1]==[] goto :eof
:loop
7z a -tzip "%~1.zip" "%~1"
shift
if not [%1]==[] goto loop
Run Code Online (Sandbox Code Playgroud)

然后可以通过注册表将此批处理文件添加到上下文菜单中:

  1. 在[HKEY_CLASSES_ROOT\Folder\shell]下新建一个key,命名为cmd1
  2. 编辑字符串值并将其命名为“Batch Zip”
  3. 在此密钥下创建另一个新密钥并将其称为命令
  4. 将此值更改为您的路径,使用双转义斜杠

例如,我的条目是“C:\Users\Rory\Dropbox\_apps\batch_zip.bat”“%1”

执行此操作后,您将在上下文菜单中为“Batch Zip”添加一个条目,该条目会将任何选定的文件夹批量压缩到单独的档案中

但是,如果您通过上下文菜单执行此操作,不幸的是它会同时运行所有操作,并且任何进行过大量压缩和解压缩的人都知道,压缩文件夹一个接一个地压缩比一次压缩要快得多。

如果有人知道在注册表中解决此问题的方法,请告诉。

将选定的文件夹拖到批处理上将一个接一个地执行。

  • 7z exe 不在我的路径上,因此我必须稍微编辑您的脚本。“C:\Program Files (x86)\7-Zip\7z.exe” a -tzip “%~1.zip” “%~1” (2认同)