rd 是什么
rd 是 Windows CMD 里删除目录的命令,rmdir 为同义写法。默认情况下它只能删空目录,目录内有文件就报错退出;必须加 /s 才会递归删除整棵目录树,再加 /q 跳过逐项确认。和 del 的分工是:del 删文件,rd 删目录。删除不经过回收站,是 CMD 里最需要小心的命令之一。
基本信息
| 适用平台 | Windows CMD(cmd.exe,Win7 至 Win11 及 Server 系列) |
|---|---|
| 同义命令 | rmdir |
| 语法 | rd [/s [/q]] 路径 |
| 关键参数 | /s 删除目录及其中全部文件;/q 安静模式不询问;两者常连用 |
| 不可恢复 | rd /s 不进入回收站,删除即永久丢失 |
| 占用检查 | openfiles /query 可查看被进程打开的文件 |
典型使用场景
- 清理构建产物目录,每次发布前把 dist 整棵树重置
- 配合计划任务按日期清理过期备份目录,保留最近若干天的归档
- 机器移交或下线前清理测试数据与临时目录
- 删除误建的深层目录结构,逐层点删远不如一条命令
- 卸载程序后清理残留目录,但必须确认没有进程占用
常用示例
常用示例
REM 只删空目录,非空会报错退出
rd D:\EmptyDir
REM 递归删除整棵目录树,不进回收站
rd /s /q D:\Backup\2025old
REM 变量拼路径时必须把最终值打印出来再执行
set TGT=D:\Backup\2025old
echo 即将删除: %TGT%
pause
rd /s /q "%TGT%"
REM 判断删除结果
if errorlevel 1 echo 删除失败,请检查占用与权限提示信息与含义
| 提示 | 含义 | 处理 |
|---|---|---|
| 目录不是空的 | 目录内还有文件或子目录 | 确认后加 /s,或先清空内容再删 |
| 系统找不到指定的文件 | 路径不存在或拼错 | 用 dir 核对真实路径 |
| 拒绝访问 | 文件被进程占用或权限不足 | 关闭占用程序,或以管理员身份运行 |
| 是否确认 (Y/N) | 未加 /q 时对整棵树逐项询问 | 脚本中加 /q;交互操作核对清单后再按 Y |
rd /s /q 是直接删除,不经过回收站。生产环境删除前先用 openfiles 或资源监视器确认没有进程占用,条件允许时先改名放置一天,确认无业务报错再真正删除。
目录被句柄占用时 rd /s 会删到一半失败,留下半删结构且难以判断剩余内容,重试还可能报不同错误。排查占用可以在资源监视器的 CPU 标签页按句柄搜索路径。