我需要删除文件夹树中与模式“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 来确认每次删除。