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

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

DEL /S不删除目录。

DELTREE已从Windows 2000+中删除


当前回答

使用Powershell 5.1

 get-childitem *logs* -path .\ -directory -recurse | remove-item -confirm:$false -recurse -force

替换为需要删除的目录名。

Get-childitem从当前路径(.)中递归地搜索具有该名称的子目录。

Remove-item删除结果。

其他回答

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

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

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

Rmdir /s dirname

在powershell中,rm是remove - item的别名,所以删除一个文件

rm -R -Fo the_file

等于

Remove-Item -R -Fo the_file

如果你对gnu rm util感到舒服,你可以在windows上通过choco包管理器来运行rm util。

在powershell中使用choco安装gnu utils:

choco install GnuWin

最后,

rm.exe -rf the_file

管理:

takeown /r /f folder
cacls folder /c /G "ADMINNAME":F /T
rmdir /s folder

适用于包括sys文件在内的任何文件

编辑:我实际上找到了最好的方法,这也解决了文件路径过长的问题:

mkdir \empty
robocopy /mir \empty folder

你可以安装cygwin,它有rm和ls等。