我需要一种递归删除文件夹及其子文件夹的方法。

是否有一个预先构建的工具,或者我需要编写一个?

DEL /S不删除目录。

DELTREE已从Windows 2000+中删除


当前回答

RMDIR或RD如果你使用经典的命令提示符(cmd.exe):

rd /s /q "path"

RMDIR [/S] [/Q] [drive:]路径 RD [/S] [/Q] [drive:]路径 /S除目录本身外,删除指定目录下的所有目录和文件。删除目录树。 /Q安静模式,不询问是否ok删除目录树与/S

如果你正在使用PowerShell,你可以使用Remove-Item(别名为del, erase, rd, ri, rm和rmdir),并带一个-Recurse参数,可以缩短为-r

rd -r "path"

其他回答

以下是对我有效的方法:

试着减小路径的长度。 即:将导致这样一个文件的所有文件夹重命名为尽可能小的名称。说出一个字母的名字。继续在文件夹层次结构中向上重命名。 这样u有效地缩短了路径长度。 现在试着直接删除文件。

对于在windows机器上安装npm包时遇到问题的任何人,如果你看到错误提示“rm -rf…”命令未找到,这是一个很重要的回答。 在windows下可以使用bash命令行执行rm命令。

对于npm用户,你可以将npm的配置更改为npm config set script-shell "C:\Program Files\Git\bin\bash.exe",这样,如果你要安装的npm包中有一个使用rm -rf命令的后安装脚本,你就可以运行那个rm命令,而不需要在npm包中更改任何内容或禁用后安装脚本配置。(例如,styles -components在安装后脚本中使用rm命令)

如果您只想使用rm命令,您可以轻松地使用bash并传递参数。

所以,是的,你可以在windows上使用'rm'命令。

通过Powershell

 Remove-Item -Recurse -Force "TestDirectory"

通过命令提示符

https://stackoverflow.com/a/35731786/439130

使用风险自负。“按现状”提供的信息。没有经过广泛的测试。

右键单击Windows图标(通常是左下角)>单击“Windows PowerShell(管理员)”>使用这个命令(如果你不小心,你可以很容易地删除你所有的文件):

rd -r -include *.* -force somedir

其中somedir是要删除的非空目录。

请注意,对于外部连接的磁盘,或有问题的磁盘,Windows有时会表现得很奇怪——它在删除(或任何复制尝试)时不会出错,但目录没有按照指示删除(或复制)。(我发现在这种情况下,至少对我来说,@n_y在他的回答中给出的命令会产生类似“get-childitem:文件或目录已损坏且不可读”这样的错误。'作为PowerShell的结果)

rmdir /S /Q %DIRNAME%