删除其他子目录的子目录,但保留 "root" 个子目录

Delete subdirectories of other subdirectories but keeping the "root" subdirectories

我们有一个网络共享,其中包含来自整个公司的多台计算机的备份。每季度一次,它会被复制到异地,然后我们会清除其中的内容。共享对于每台机器都有一个子目录,然后在该子目录中有更多包含备份的文件夹。机器子目录已启用共享并为该单独的机器设置了权限,因此我们不想删除它们,但我们确实想删除所有子目录。所以它看起来像这样:

Machine 1
 - My Documents
Machine 2
 - My Documents
 - Database Config
Machine 3
 - My Documents
 - Desktop

在上面的例子中,所有机器目录都在一个名为 Backups 的文件夹中,我们想要删除它们的所有子目录(我的文档、数据库配置、桌面等)。大约有 190 台机器,因此手动进入每个目录然后删除内容非常耗时。这最好是一个基于 DOS 的批处理文件,由管理员手动 运行。我一直在玩 For Do 循环,但无法让它按预期工作。有什么建议吗?

使用带有 /D 选项的 FOR 命令遍历网络共享中的所有目录。然后,对于找到的每个目录,再次使用 FOR /D 遍历所有子目录并使用 RD /S

清除它们

类似的东西...

FOR /D %%a in (*) DO (
  PUSHD "%%a"
  FOR /D %%b in (*) DO RD /S /Q "%%b"
  POPD
)