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

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

DEL /S不删除目录。

DELTREE已从Windows 2000+中删除


当前回答

公认的答案很好,但假设您已经安装了Node,您可以使用节点库“rimraf”更精确地做到这一点,它允许全局匹配模式。如果你经常使用它(我就是这样),就全局安装它。

yarn global add rimraf

然后,例如,我经常使用的一个模式:

rimraf .\**\node_modules

或者使用一行程序,让你避开全局安装,但动态下载包需要稍长时间:

npx rimraf .\**\node_modules

其他回答

rm -r -fo <path>

是在Windows PowerShell中最接近的。它是的缩写

Remove-Item -Recurse -Force -Path <path>

(更多细节)。

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"

试试这个命令:

del /s foldername

rmdir /S /Q %DIRNAME%

作为旁注:

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

$ rm -rf ./path

到 PowerShell

PS> rm -r -fo ./path

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

注意:

Remove-Item ALIASE
    ri
    rm
    rmdir
    del
    erase
    rd