如何在Windows中从命令行递归删除目录?


Answers:


342

deltree如果我记得我的DOS


似乎已经更新了……这就是您想要的:

RMDIR /S

这将删除目录C:\test,并提示:

rmdir c:\test /s

这样做是一样的,没有提示:

rmdir c:\test /s /q

关于问题的sudo部分,如果您需要更多特权,则可以首先使用以下runas命令以另一个用户帐户的身份打开新的Shell :

runas /user:Administrator cmd
rmdir c:\test /s /q

1
@FarmBoy,道歉,看来我的回忆回去太远了。我已经更新了Windows XP和更高版本的答案。
科林·皮卡德

8
是的deltree是旧的DOS命令。在XP rmdir /s
中将

3
/ s标志代表什么?
Mike R

由于某种原因,如果在Powershell中执行此操作,则会出现问题。因此,只需使用Windows的命令行即可。
戴维

3
@MikeR,它可能代表“子目录”之类的东西。findstr具有相同的参数,这使其大小写更有意义,因此也许它们在一致性方面是相同的。
2015年

57

如果您想从命令提示符中删除一个长而复杂的文件夹结构,而RmDir不会触摸它甚至浏览器也无法显示,我发现robocopy可以非常有效地删除该结构。在下面的示例中,文件夹管理员内部有一个庞大的结构,该结构是如此之深,以至于无法删除它。我们创建了一个新的空文件夹,叫做(新奇!)“ new folder”。然后,我们使用robocopy命令,使用/ MIR参数告诉它源文件夹为“新文件夹”,目标文件夹为“ D:\ Administrator”,这意味着它将清除源文件夹中没有的任何内容。

robocopy "D:\new folder" D:\Administrator /MIR

在这种情况下,文件夹路径太长了,它们甚至无法容纳在命令提示符窗口的“屏幕缓冲区”中,但是Robocopy会遍历结构并删除所有“多余”文件和文件夹(即,新的空文件夹中没有的所有内容) )。


11
当您的路径长度超过250个奇数字符时,这是唯一可行的解​​决方案
Calm Storm


6

对我来说,有效的是

del /s dir

您可以添加/q以禁用确认。我从来没有设法开始rmdir工作(在XP上)


6
您可能应该停止使用XP,不再支持它了
Eric Wilson

3
对我而言,这将以递归方式删除所有文件,但不会删除目录本身,dir也不会删除。
sergiol

2

如果您的路径真的很长(例如由于Java程序错误而这样做),即使robocopy也无法做到。它下降了约30秒进入我的路径,然后挂了。

我的解决方案:如果您可以将整个问题路径从一个文件夹移动到另一个文件夹,则可以递归地删除该目录,并从顶部反复重复一些目录台阶。

这个批处理在两个目录leer和leer2之间打乒乓球,并且每次减少8个“库”。如果路径中包含文件,则必须添加其他命令以将其删除。

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop

2

从CMD只需运行RD / s C:\ path \ to \ delete在提示符下单击Y

/ s确保所有子目录也被删除。

参考从命令行运行帮助RD


2
感谢您的回答,但是此信息已经在接受的答案中。(rd并且rmdir是相同的。)也许在那里适合作为评论。
本N

0

这将删除“我的文件夹”而不提示:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.