单独压缩子文件夹

单独压缩子文件夹

谁能帮我创建一个批处理文件来解决我的问题。我有多个文件夹想要单独压缩。

  • 文件夹 1

    文件 1
    文件 2

  • 文件夹 2

    文件 1
    文件 2

我需要先进入文件夹 1,然后压缩其所有内容(文件和文件夹,甚至其中的子目录),然后以该文件夹命名 zip 文件。之后,转到文件夹 2,然后执行相同操作。

有一个简单的脚本:

对于 (*) 中的 /d %%X,执行 "c:\Program Files\7-Zip\7z.exe" a "%%X" "%%X\"

但结果并不是我想要的。上面的脚本将单独压缩里面的所有文件夹,但解压后存档将有双文件夹。上面的代码将压缩文件夹 1。但当我解压文件夹 1 时它将如下所示:

文件夹 1

文件夹 1

文件 1
文件 2

难道不能像进入第一个文件夹一样,压缩其中的所有内容,用文件夹名称保存 zip 文件,然后转到下一个文件夹,直到压缩所有内容。

答案1

这取决于您用来提取的命令。

如果您选择“在此处提取”,您将得到您想要的内容。

但是,如果您确实不想要存档中的文件夹名称,您可以执行以下操作:

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

注意.\%%X\*。这将排除目录名称本身。

相关内容