我需要一种递归删除文件夹及其子文件夹的方法。
是否有预先构建的工具可供使用,或者我需要编写一个工具?
DEL /S
命令无法删除目录。
DELTREE
在 Windows 2000+ 中已被移除。
如果您使用经典命令提示符(cmd.exe),则使用RMDIR或RD:
rd /s /q "path"
[/S] [/Q] [drive:]path
[/S] [/Q] [drive:]path
/S 删除指定目录下的所有目录和文件,包括目录本身。用于删除目录树。
/Q 静默模式,不询问是否删除具有 /S 的目录树。
若您使用 PowerShell,则可以使用 命令(别名为 rd -r "path"
管理员:
takeown /r /f folder
cacls folder /c /G "ADMINNAME":F /T
rmdir /s folder
适用于任何文件,包括系统文件
编辑:我实际上找到了最好的方法,还可以解决文件路径太长的问题:
mkdir \empty
robocopy /mir \empty folder
robocopy /mir c:\empty .
即可。 - Léon PelletierRMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path
/S
删除指定目录及其子目录下所有的文件和文件夹。用于删除一个目录树。
/Q
静默模式,在使用/S
参数删除目录树时不询问确认。
rm -r
而不是rm -rf
。 - Joshua前往该路径并执行此命令。
rd /s /q "FOLDER_NAME"
/s:删除指定目录及其所有子目录,包括其中的文件。使用/s可以删除整个树。
/q:以静默模式运行rmdir。无需确认即可删除目录。
/?:在命令提示符下显示帮助信息。
你可以安装cygwin,它包含rm
和ls
等命令。
rm -r -fo <path>
"最接近 Windows PowerShell 的命令是。它是”的缩写。
Remove-Item -Recurse -Force -Path <path>
要删除一个目录(无论其是否存在),请使用以下命令:
if exist myfolder ( rmdir /s/q myfolder )
接受的回答很好,但是假设您已经安装了Node,您可以使用Node库“rimraf”更加精确地执行此操作,该库允许使用globbing模式。如果您经常使用这个(我经常使用),只需全局安装即可。
yarn global add rimraf
那么,举个例子,我经常使用的一种模式:
rimraf .\**\node_modules
或者使用一行代码,避免全局安装,但需要稍长一些时间来动态下载包:
npx rimraf .\**\node_modules
通过 Powershell
Remove-Item -Recurse -Force "TestDirectory"
通过命令提示符
尝试使用以下命令:
del /s foldername
rmdir /S /Q
。 - masterxilo