7zip在目录中批量处理多个文件,而存档中没有文件夹

Posted

技术标签:

【中文标题】7zip在目录中批量处理多个文件,而存档中没有文件夹【英文标题】:7zip batch multiple files in directory without folder in archive 【发布时间】:2015-05-29 01:50:48 【问题描述】:

我在一系列文件夹中有一系列文件需要单独压缩。

C:\folder1\file1-1.txt
C:\folder1\file1-2.txt
C:\folder1\file1-3.txt

C:\folder2\file2-1.txt
C:\folder2\file2-2.txt
C:\folder2\file2-3.txt
C:\folder2\file2-4.txt

C:\folder3\file3-1.txt
C:\folder3\file3-2.txt
C:\folder3\file3-3.txt
C:\folder3\file3-4.txt
C:\folder3\file3-5.txt

我使用下面的代码压缩每个文件夹,没问题:

for /d %%X in (fol*) do "c:\Program Files\7-Zip\7z.exe" a "%cd%\ZIPS\%%X.zip" "%%X"

我在“ZIPS”目录中留下了 3 个 zip 文件,每个文件夹的内容都在自己的 ZIP 中,如所愿。

C:\ZIPS\folder1.zip
C:\ZIPS\folder2.zip
C:\ZIPS\folder3.zip

但是在每个文件中,我只剩下文件夹和文件。

e.g. C:\ZIPS\folder1.zip\folder1\<files here>

我要的是保存在目录根目录中的文件:

e.g. C:\ZIPS\folder1.zip\<files here>

我尝试删除行尾的“%%X”,但所做的只是将所有文件保存在每个文件夹的所有目录中。

我们将不胜感激。

【问题讨论】:

【参考方案1】:

切换到要压缩的文件所在的文件夹

for /d %%X in (fol*) do ( 
    pushd "%%~fX" & (
        "c:\Program Files\7-Zip\7z.exe" a "%cd%\ZIPS\%%~nX.zip" *
        popd
    )
)

【讨论】:

以上是关于7zip在目录中批量处理多个文件,而存档中没有文件夹的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中解压缩包含多个文件和目录的 7zip 存档 [关闭]

批处理 7zip,将文件压缩到没有任何文件夹的存档中

7zip:在C#中,如何将不同目录下的多个同名文件添加到同一个zip文件中?

使用 7zip 命令行实用程序解密加密的 7zip 存档文件

Android 上的 J7zip - 从存档中提取并列出内容

在 7z 单文件存档中随机查找