rd 是一个在 Windows 命令提示符(CMD)和 PowerShell 中都存在的命令,它的全称是 "Remove Directory",功能与 rmdir 完全相同,都是用来删除目录(文件夹)的。

下面我将从基础到高级,全面介绍 rd 命令的用法。
基础语法
rd 命令的基本语法非常简单:
rd [/S] [/Q] [驱动器:]路径
或者使用其全称 rmdir:
rmdir [/S] [/Q] [驱动器:]路径
核心参数详解
rd 命令最关键的两个参数是 /S 和 /Q。

/S 参数 (递归删除)
- 作用:删除指定目录下的所有子目录和文件,然后删除该目录本身,这是一个递归操作。
- 场景:当你需要删除一个非空目录时,必须使用
/S参数。 - 安全提示:为了防止误删,当使用
/S参数时,系统默认会显示确认提示Are you sure (Y/N)?,要求你输入Y来确认删除,这是一个非常好的安全机制。
示例: 假设你有一个目录结构如下:
C:\MyProject
├── folder1
│ └── file1.txt
└── folder2
└── file2.txt
现在要删除整个 MyProject 目录及其所有内容:
rd /S C:\MyProject
执行后,系统会提示:
C:\MyProject, Are you sure (Y/N)?
你输入 Y 并回车,MyProject 及其所有子文件夹和文件都会被彻底删除。

/Q 参数 (安静模式)
- 作用:安静模式,在使用
/S参数时,取消删除前的确认提示。 - 场景:当你确信要删除,并且不希望每次都手动确认时(例如在批处理脚本中自动化操作),可以使用
/Q参数。 - 警告:此参数风险较高,请务必确保路径正确,否则可能会造成不可逆的数据丢失。
示例:
同样删除上面的 MyProject 目录,但不再需要确认:
rd /S /Q C:\MyProject
命令会直接执行,没有任何提示,直接删除所有内容。
使用场景与示例
场景1:删除一个空目录
如果目录是空的,你不需要 /S 参数。
目录结构:
C:\temp
└── empty_folder
命令:
rd C:\temp\empty_folder
或者切换到 C:\temp 目录下,直接执行:
cd C:\temp rd empty_folder
场景2:删除一个非空目录(带确认)
这是最常见的安全用法。
目录结构:
C:\data
├── report.docx
├── images
│ └── logo.png
└── archive.zip
命令:
rd /S C:\data
系统会提示 Are you sure (Y/N)?,输入 Y 确认后,data 目录及其内部所有内容将被删除。
场景3:在批处理脚本中无提示删除目录
在自动化脚本中,反复的确认提示会非常麻烦,这时 /Q 就派上用场了。
示例脚本 cleanup.bat:
@echo off
echo 正在清理临时文件...
rd /S /Q "C:\Users\%USERNAME%\AppData\Local\Temp\MyAppTemp"
if exist "C:\Users\%USERNAME%\AppData\Local\Temp\MyAppTemp" (
echo 清理失败,目录可能被占用。
) else (
echo 清理成功。
)
pause
这个脚本会静默删除 MyAppTemp 目录,无论它是否为空。
重要注意事项与最佳实践
-
权限是关键
- 你必须拥有对该目录的完全控制权限才能删除它。
- 如果目标目录中有正在运行的程序或打开的文件,
rd命令会失败并提示“文件被占用”或“拒绝访问”。
-
路径中包含空格
- 如果路径中包含空格(
C:\Program Files\My App),你必须用双引号 将整个路径括起来。 - 正确示例:
rd "C:\Program Files\My App"
- 错误示例:
rd C:\Program Files\My App <!-- 会被系统解析为三个参数 -->
- 如果路径中包含空格(
-
当前目录的影响
- 你不能删除当前所在的目录,如果你在
C:\MyProject目录下,执行rd C:\MyProject或rd .都会失败,系统会提示“进程无法访问文件,因为它正被另一个进程使用”。 - 解决方案:在删除目录之前,先切换到其父目录或另一个完全无关的目录。
cd C:\ rd /S C:\MyProject
- 你不能删除当前所在的目录,如果你在
-
rdvsdel/eraserd/rmdir:用于删除整个目录(文件夹)。del/erase:用于删除单个文件。- 新手常见错误:尝试用
del去删除一个目录,这是行不通的。
-
替代方案:PowerShell
- 在现代 Windows 系统中,更推荐使用 PowerShell,它的命令更强大、更一致。
- 删除目录的 PowerShell 命令是
Remove-Item,通常缩写为rm或ri。 - 递归删除(带确认):
Remove-Item -Path C:\MyProject -Recurse
- 递归删除(无确认):
Remove-Item -Path C:\MyProject -Recurse -Force
- PowerShell 的
-Force参数功能类似于rd的/Q,但更强大,因为它还能覆盖只读属性等。
总结表格
| 功能 | 命令 (CMD) | 命令 (PowerShell) | 说明 |
|---|---|---|---|
| 删除空目录 | rd 目录名 |
Remove-Item 目录名 |
最基础的用法。 |
| 删除非空目录 (安全) | rd /S 目录名 |
Remove-Item 目录名 -Recurse |
会弹出确认提示,防止误删。 |
| 删除非空目录 (强制) | rd /S /Q 目录名 |
Remove-Item 目录名 -Recurse -Force |
无提示,静默删除,风险高。 |
| 删除带空格的目录 | rd "路径 目录名" |
Remove-Item "路径 目录名" |
路径需用双引号括起来。 |
| 删除当前目录 | 不允许 | 不允许 | 需先切换到其他目录再删除。 |
希望这份详细的指南能帮助你完全掌握 rd 命令的使用!
