在 Windows 中递归删除匹配模式的文件夹

在 Windows 中递归删除匹配模式的文件夹

我需要删除文件夹树中与模式“images”匹配的所有子文件夹。
我可以使用以下命令删除与模式匹配的所有文件

del /s myfolder\images*.*

但它不适用于目录。
我也尝试过 rmdir,但没有成功

答案1

rmdir /s可能是您想要清除子树,正如 Floris 所说,这非常危险。如果我正确理解了您的问题,您希望能够删除myfolder\a\b\c\holiday_images而保持myfolder\a\b\c\holiday_videos完整。这应该可以满足您的要求:

for /d /r %i in (*image*) do @rmdir /s "%i"

这是 Windows 原生的功能;无需下载或安装任何东西。

对于运行此类潜在危险的命令,有一点一般性建议:

对于 (*image*) 中的 /d /r %i 执行 @回声rmdir /s “%i”
首先;这将向您显示它将做什么,但不会执行任何操作。在您验证它正在执行您想要的操作后,再次运行它,但不使用echo

如果要在批处理文件(脚本)中使用此命令,则必须将百分比字符加倍;即

for /d /r %%i in (*image*) do @rmdir /s "%%i"

答案2

以下说明了如何在删除每个目录时显示它被删除。

for /d /r %%i in (DIV_sv*) do (
    @rmdir /s /q "%%i"
    echo Removed "%%i"
    )

第一个括号必须与 do 位于同一行,并且 rmdir 命令必须在下一行。

答案3

rm -rf myfolder/images 将会删除而不询问,否则你可以使用 -ri 来确认每次删除。

相关内容