7zip递归归档文件夹中的文件

时间:2015-01-29 10:24:08

标签: windows batch-file command-line cmd 7zip

我需要以特殊方式归档所有文件,但不归档复杂目录结构中的文件夹。每个子文件夹(无论结构有多深)都将包含一个包含以前所有文件的zip文件。 如果我使用7zip a -r -tzip files.zip \*.\*,这将把所有结构放在一个根文件(文件和文件夹)中。不好。

该解决方案是一个批处理脚本,用于递归此结构,并为找到的每个文件夹创建一个zip文件并删除原始文件。但我只知道如何制作简单的循环,而不是无限制,而不是在未知的目录结构中。

例如: for /F "tokens=1" %%u in ('dir /b /ad parentfolder') do ( 仅列出第一级子目录。

1 个答案:

答案 0 :(得分:3)

使用 (1) FOR命令在所有{{}上迭代 (2) 1}} (3) 目录IN (*) (4) 递归/D
找到/R找到的每个目录的 (5) (6) 应用%%a (7) DO命令创建zip (8) 命名为目录7z (9) ,包括所有内容目录%%~na.zip

%%a\*

可选 ,您可能要删除最近创建的zip文件以外的目录内容,将另一个for /r /d %%a in (*) do ( 7z a %%a\%%~na.zip %%a\* ) 放在上一个FOR中,在FOR

之后
7z