我正在尝试编写一个简单的批处理文件,它将以递归方式查找和删除文件夹。但是以下脚本不在子文件夹下查找。想知道怎么做?
@echo off
cd /d "C:\"
for /d %%i in (temp) do rd /s "%%i"
pause
谢谢!
答案 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
的子文件夹。