我需要一种递归删除文件夹及其子文件夹的方法。
是否有一个预先构建的工具,或者我需要编写一个?
DEL /S不删除目录。
DELTREE已从Windows 2000+中删除
我需要一种递归删除文件夹及其子文件夹的方法。
是否有一个预先构建的工具,或者我需要编写一个?
DEL /S不删除目录。
DELTREE已从Windows 2000+中删除
当前回答
公认的答案很好,但假设您已经安装了Node,您可以使用节点库“rimraf”更精确地做到这一点,它允许全局匹配模式。如果你经常使用它(我就是这样),就全局安装它。
yarn global add rimraf
然后,例如,我经常使用的一个模式:
rimraf .\**\node_modules
或者使用一行程序,让你避开全局安装,但动态下载包需要稍长时间:
npx rimraf .\**\node_modules
其他回答
Rmdir /s dirname
通过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 %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函数
以下是对我有效的方法:
试着减小路径的长度。 即:将导致这样一个文件的所有文件夹重命名为尽可能小的名称。说出一个字母的名字。继续在文件夹层次结构中向上重命名。 这样u有效地缩短了路径长度。 现在试着直接删除文件。