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

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

DEL /S不删除目录。

DELTREE已从Windows 2000+中删除


当前回答

要删除一个目录(不管它是否存在),请使用以下命令:

if exist myfolder ( rmdir /s/q myfolder )

其他回答

以下是你需要做的事情……

用下面的代码行创建一个批处理文件

Rmdir / s %1

将批处理文件保存为Remove.bat,并将其放在C:\windows中

创建以下注册表项

HKEY_CLASSES_ROOT\目录\shell\删除目录

启动regedit并更新默认值HKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)\default 使用以下值

“c: \ windows \ REMOVE.bat”“% 1”

这就是它!现在您可以右键单击任何目录并使用RMDIR函数

对于在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'命令。

作为旁注:

从linux版本用所有子dirs(递归)+强制删除

$ rm -rf ./path

到 PowerShell

PS> rm -r -fo ./path

它具有接近相同的参数(只是分开了)(需要-fo,因为-f可以匹配其他不同的参数)

注意:

Remove-Item ALIASE
    ri
    rm
    rmdir
    del
    erase
    rd

如果你使用的是旧版本的windows,还有deltree。

你可以从这里了解更多: SS64: DELTREE -删除所有子文件夹和文件。

RMDIR [/S] [/Q] [drive:]路径

RD [/S] [/Q] [drive:]路径

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