使用批处理文件递归查找和删除文件夹

时间:2014-10-09 16:32:12

标签: file batch-file recursion

我正在尝试编写一个简单的批处理文件,它将以递归方式查找和删除文件夹。但是以下脚本不在子文件夹下查找。想知道怎么做?

@echo off
cd /d "C:\"
for /d %%i in (temp) do rd /s "%%i"
pause

谢谢!

2 个答案:

答案 0 :(得分:9)

for /d /r "c:\" %%a in (temp\) do if exist "%%a" echo rmdir /s /q "%%a"

对于每个文件夹(/d),在/r测试下递归(c:\)是否存在temp文件夹,如果存在,请将其删除

目录删除命令仅回显给控制台。如果输出正确,请删除echo命令

答案 1 :(得分:0)

/S切换为rd表示

/S      Removes all directories and files in the specified directory
        in addition to the directory itself.  Used to remove a directory
        tree.

这并不意味着它将搜索所有目录,寻找具有指定名称的目录并删除它们。

换句话说,如果您从rd /S Test文件夹运行C:\Temp,它将删除C:\Temp\Test\*.*,包括C:\Temp\Test的所有子目录(任何名称)。 意味着它会删除C:\Temp\AnotherDir\Test,因为它不是C:\Temp\Test的子文件夹。