递归删除以。开头的所有文件夹

时间:2009-11-27 08:30:52

标签: windows batch-file recursion command-line directory

我需要在.bat文件中编写一个命令,以递归方式删除以某个字符串开头的所有文件夹。我怎么能实现这个目标?

5 个答案:

答案 0 :(得分:42)

这是您正在寻找的完整答案:

FOR /D /R %%X IN (certain_string*) DO RD /S /Q "%%X"

显然你需要用文件夹开头的字符串替换certain_string

这会根据您的要求删除 RECURSIVY (我的意思是它会遍历所有文件夹和子文件夹)。

答案 1 :(得分:4)

怎么样:

for /d %a in (certain_string*) do rd /s %a

这将从命令提示符开始。在批处理文件中,您必须像往常一样将%加倍:

@echo off
for /d %%a in (certain_string*) do rd /s %%a

答案 2 :(得分:1)

我想,未完成。如果您的意思是“递归下去目录层次结构以删除以某个字符串开头的所有文件夹”,那么以下内容可能就足够了:

for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"

这将递归到目录树中,查找以“abc”开头的所有文件夹,遍历该列表并删除每个文件夹。

根据查找和返回目录的顺序,您可能需要在if exist周围包裹rd。一般来说,迭代某些东西并同时更改它很少是一个好主意,但有时它可行: - )

答案 3 :(得分:0)

rm -rf - “目录名称”

Ex:rm -rf - “-2096378”

上面的命令将删除以 - 或通配符

开头的文件夹/目录

答案 4 :(得分:-1)

FOR /F "tokens=*" %i IN ('DIR **[[SearchTerm]]** /A:D /s /b') do rd /S / Q %i