windows-force-delete
Windows 强制删除文件或目录
补充说明
Windows 强制删除用于绕过文件锁定、权限不足、路径过长等常规删除失败的情况,通过 rd、del、Remove-Item 等命令直接删除目标,不会移入回收站,删除后不可恢复。
通用说明
- 强制删除不经过回收站,请确认目标无误后再执行
- 被进程锁定的文件可能仍无法删除,需先结束占用进程
- 长路径(超过 260 字符)需使用
\\?\前缀或 PowerShell
命令提要与对比
| 场景 | CMD | PowerShell |
|---|---|---|
| 删除目录(含子目录/文件) | rd /s /q "path" |
rm "path" -r -fo |
| 删除文件(忽略只读属性) | del /f /s /q "path" |
rm "path" -fo |
| 删除当前目录下所有文件 | del /f /s /q * |
rm * -r -fo |
一、CMD 命令
1. 强制删除目录(含所有子目录和文件)
rd /s /q "C:\Users\meimo\Downloads\test"
参数说明:
/s— 删除目录及所有子目录和文件/q— 安静模式,不要求确认
2. 强制删除文件(忽略只读属性)
del /f /s /q "C:\Users\meimo\Downloads\test\file.txt"
参数说明:
/f— 强制删除只读文件/s— 从所有子目录删除匹配文件/q— 安静模式,不要求确认
3. 删除当前目录下全部文件及子目录
del /f /s /q *
rd /s /q .
先删文件再删目录,避免 rd 因目录非空失败。
二、PowerShell 命令
1. 强制删除目录(含所有子目录和文件)
rm "C:\Users\meimo\Downloads\test" -r -fo
或使用完整命令名:
Remove-Item "C:\Users\meimo\Downloads\test" -Recurse -Force
参数说明:
-Recurses(-r)— 递归删除子目录和文件-Force(-fo)— 强制删除隐藏和只读文件
2. 强制删除文件
rm "C:\Users\meimo\Downloads\test\file.txt" -fo
3. 删除目录内全部内容但保留目录本身
rm "C:\Users\meimo\Downloads\test\*" -r -fo
三、批处理脚本模板
将删除的目标文件/目录,直接拖拽文件夹到脚本上
@echo off
if exist "%~1\" (
rd /s /q "%~1"
) else (
del /f /q "%~1"
)
四、进阶用法
1. 处理长路径(超过 260 字符)
CMD 使用 \\?\ 前缀绕过 MAX_PATH 限制:
rd /s /q "\\?\C:\Users\meimo\Downloads\very-long-path-name-超过260字符"
PowerShell 无此限制,直接执行即可。
2. 删除被进程占用的文件
先查找占用进程再强制终止:
# 查找占用文件的进程
dotnet "C:\path\to\locked\file.txt"
或使用工具 handle.exe / Process Explorer 解除占用。
3. 删除大量小文件(提升速度)
PowerShell 直接删除目录比逐文件遍历更快:
# 直接删除整个目录而非遍历
rm "C:\Users\meimo\Downloads\temp" -r -fo
4. 排除特定文件/子目录
# 删除目录内所有内容,但保留指定文件
Get-ChildItem "C:\Users\meimo\Downloads\test" -Exclude "keep.txt" | rm -r -fo
五、安全与注意事项
- 不可恢复:
rd、del、Remove-Item均不经过回收站,删除前请确认 - 管理员权限:系统保护目录(如
C:\Windows)需以管理员身份运行 - 只读文件:
del需/f参数,PowerShell 需-Force参数 - 通配符谨慎:
*通配符可能匹配到非预期文件,建议先用dir预览再执行 - 网络路径:操作网络共享需确保有足够权限,路径使用 UNC 格式(
\\server\share\path)