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