我需要以特殊方式归档所有文件,但不归档复杂目录结构中的文件夹。每个子文件夹(无论结构有多深)都将包含一个包含以前所有文件的zip文件。
如果我使用7zip a -r -tzip files.zip \*.\*
,这将把所有结构放在一个根文件(文件和文件夹)中。不好。
该解决方案是一个批处理脚本,用于递归此结构,并为找到的每个文件夹创建一个zip文件并删除原始文件。但我只知道如何制作简单的循环,而不是无限制,而不是在未知的目录结构中。
例如:
for /F "tokens=1" %%u in ('dir /b /ad parentfolder') do (
仅列出第一级子目录。
答案 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