合并仅包含一个文件夹的文件夹

合并仅包含一个文件夹的文件夹

我有一个如下所示的目录结构:

(root) – Folder1  – Folder2  – file3
                             – file4
                             – file5
       – Folder11 – Folder12 – file13
                             – file14
                             – file15

即,Folder1、Folder11、Folder21、… 每个都只包含一个子目录。这些子目录(Folder2、Folder12、Folder22、…)没有任何用处。我想将 file3、file4、file5、… 移动到 Folder1 中,然后删除空的 Folder2。然后在整个树中重复;例如,

(root) – Folder1  – file3
                  – file4
                  – file5
       – Folder11 – file13
                  – file14
                  – file15

手动执行此操作不切实际,因为我有数百或数千个这样的文件夹。我已经知道“删除空目录”对于删除空文件夹非常有用,但它不一样。

如何在 Windows 7 系统中轻松地合并它们?

答案1

您可以使用 CMD 来执行此操作(我已从“文件夹 1”中删除了空白,以简化示例,无需使用引号。):-

c:
cd \folder1
for /r %f in (*) do move /-y %f \folder1\
for /d %f in (*) do rd /s /q %f

更安全的做法是创建一个新的目标文件夹并将文件移动到那里:一旦您确定所有文件都已移动(使用目录/s), 删除\文件夹1(和读/秒)并重命名(使用移动)将新文件夹放回\文件夹1:-

c:
md \newfolder1
cd \folder1
for /r %f in (*) do move /-y %f \newfolder1\
dir /s
rem If the previous command shows no files then proceed with:-
cd \
rd /s /q \folder1
move \newfolder1 \folder1

请注意,如果名称在不同的子目录中重复,将会有提示(我包括了/-y在里面移动命令(以防您将命令放入批处理文件中)。

相关内容