当删除大量文件和文件夹时, 通过Windows资源管理器来删除, 速度是非常慢的。
Stack Overflow上的吐槽The worst way is to send to Recycle Bin: you still need to delete them.
Next worst is shift+delete with Windows Explorer: it wastes loads of time checking the contents before starting deleting anything.
1 CMD在cmd中, 最好的方法是使用以下命令:
batch
del /f/s/q folder > nul
rd /s/q folder
# 多个文件夹时
del /f/s/q folder1 folder2 > nul
rd /s/q folder1 folder2
# 文件夹名有空格时
del /f/s/q "folder name" > nul
rd /s/q "folder name"1.1 deldel /f/s/q folder > nul命令递归删除该目录下所有文件, 并将输出设为空, 以避免将每个文件的删除结果输出到屏幕的开销。
del命令的官方文档, 有关上述参数的其他信息:
/f: 强制删除。/s: 递归删除。显示要删除的文件的名称。/q: 安静模式。删除时不提示用户确认删除。1.2 rd提示rd等同于rmdir。虽然rd或rmdir也可以直接递归删除目录和目录下所有文件, 看起来一步到位, 但是它的速度比del慢, 在文件非常多的情况下, 对比明显。rd /s/q folder命令清理剩余的目录结构 (这些目录已经空了, 也可以直接Shift+Delete删除)。
rd命令的官方文档, 有关上述参数的其他信息:
/s: 递归删除。/q: 安静模式。删除时不提示用户确认删除。 (请注意, 只有在指定了/s时, /q才有效。)2 PowerShell在PowerShell中, 最好的方法是使用以下命令:
shell
Remove-Item -Force -Recurse folder
# 多个文件夹时
Remove-Item -Force -Recurse folder1,folder2
# 文件夹名有空格时
Remove-Item -Force -Recurse "folder name"推荐使用它们的别名, 简单易记:
shell
rm -Force -r folder
# 多个文件夹时
rm -Force -r folder1,folder2
# 文件夹名有空格时
rm -Force -r "folder name"其实在PowerShell中, rmdir也是Remove-Item的别名。
Remove-Item命令的官方文档, 有关上述参数的其他信息:
LiteralPath: 指定一个或多个位置的路径。Force: 强制删除。Recurse: 递归删除。参考链接What’s the fastest way to delete a large folder in Windows?del 官方文档rd 官方文档Remove-Item 官方文档