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

Windows 递归删除以开头的所有文件夹,windows,batch-file,recursion,command-line,directory,Windows,Batch File,Recursion,Command Line,Directory,我需要在.bat文件中编写一个命令,递归删除以某个字符串开头的所有文件夹。我怎样才能做到这一点呢?我想还没有完成。如果您的意思是“递归地沿着目录层次结构删除以某个字符串开头的所有文件夹”,那么以下内容可能就足够了: for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x" 这将递归到目录树中,查找以“abc”开头的所有文件夹,迭代该列表并删除每个文件夹 根据目录的查找和返回顺序,可能需要在rd周围包装if exist。一般来说,

我需要在.bat文件中编写一个命令,递归删除以某个字符串开头的所有文件夹。我怎样才能做到这一点呢?

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

for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"
这将递归到目录树中,查找以“abc”开头的所有文件夹,迭代该列表并删除每个文件夹

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

怎么样:

for /d %a in (certain_string*) do rd /s %a
这将在命令提示符下工作。在批处理文件中,您必须像往常一样将
%
s加倍:

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

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

FOR /D /R %%X IN (certain_string*) DO RD /S /Q "%%X"
显然,您需要用文件夹开头的字符串替换
某些字符串

这会按照您的要求递归删除(我的意思是它会遍历所有文件夹和子文件夹)。

rm-rf--“目录名”

例如:rm-rf--“2096378”


上面的命令将删除以-或通配符开头的文件夹/目录。我需要更多的睡眠。。。或者茶。。。(击中桌子的头部)嗯,虽然这可能不会递归到目录树并找到更深层的符合条件的文件夹,对吗?(我的解决方案也没有做到这一点,但我刚刚意识到OP就是这个意思)。我不得不从我最初的简单尝试中进行一些扩展,因为
rd
本身似乎并不扩展通配符。要递归地查找以前缀开头的目录,您可以使用
for/r
或其组合。哦,不太好。我也没有尝试过,因为我现在没有目录可以破坏:-)Rössel:这有用吗?当试图删除以“.delme”结尾的目录时,它不起作用,我尝试了你的建议:对于/f“delims=“%%x in('dir/b/ad*.delme'),执行rd/s/q“%%x”,但它似乎不起作用。@Marco:不需要喊。如果有疑问,问一个新问题,并清楚详细地说出你的问题。类似于“不起作用”的东西通常是一个糟糕的问题报告。罗塞尔:我没喊,我只是写了大写。那我就要问新问题了。除了@Maorco的回答之外,没有什么对我有用的了。遗憾的是,除了我的选票外,他没有其他选票(Thx.I不得不排除两个目录,这导致了此命令:
FOR/D/R%%X in(*.lproj)DO IF/I“%%~xnX”neq”en.lproj”IF/I”%%~xnX“neq”english.lproj“RD/S/Q”%%~fX”
。说明:等于完整的目录名。
IF/I..neq“en.lproj”
过滤所有等于
“en.lproj”的目录(
/I
=不区分大小写)。如果。最后,我递归删除了所有以
.lproj
结尾的目录,除了
en.lproj
english.lproj
之外。
FOR /F "tokens=*" %i IN ('DIR **[[SearchTerm]]** /A:D /s /b') do rd /S / Q %i