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

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

Windows 的对应内容是什么rm -r [directory-name]

答案1

deltree如果我记得我的 DOS


似乎已经更新了...这是你想要的:

RMDIR /S

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

rmdir c:\test /s

下面的命令效果相同,但是没有提示:

rmdir c:\test /s /q

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

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

答案2

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

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

在这种情况下,文件夹路径太长,甚至无法放入命令提示符窗口屏幕缓冲区,但 Robocopy 将遍历结构并删除任何“额外”的文件和文件夹(即新空文件夹中不存在的任何内容,即所有内容)。

答案3

如果您使用的是 Windows Vista+,则可以在 PowerShell 中执行以下操作:

rm C:\path\to\delete -r -f[orce]

答案4

如果路径非常非常长(就像我因为 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

相关内容