CMD 常用命令74 条

del 删除文件

删除文件(erase 同义):/f 强制、/s 递归、/q 静默;删除不进回收站,目录必须用 rd。

Windows 运维速查系统更新于 2026-10-13

del 是什么

del 用来删除文件,支持通配符与属性筛选,可以强制删除只读文件,也可以递归删除子目录中的匹配文件。它有两个必须记住的特性:删除不进入回收站,以及它只能删文件、不能删目录本身。正因为不进回收站且默认不确认,这条命令在脚本里属于高风险操作。稳妥的做法永远是同一个套路——先把打算使用的参数原封不动地交给目录列表命令,看清会命中哪些文件,再切换成删除动作。

基本信息

适用平台Windows CMD(PowerShell 中的同名命令是别名,行为不同)
语法del [/p] [/f] [/s] [/q] [/a[:属性]] <文件名或通配符>
参数含义/p 逐个确认、/f 强制删除含只读、/s 递归子目录、/q 静默、/a 按属性筛选
删除范围只删文件,目录结构需要用删除目录树的命令处理
回收站不进回收站,删除后无法通过常规方式还原
权限删除受保护目录下的文件需要管理员权限

典型使用场景

  • 清理临时文件:按扩展名批量删除过期内容
  • 日志轮转:删除超过保留期的日志分卷
  • 病毒处置:删除带隐藏属性的可疑文件(配合隐藏属性筛选)
  • 脚本收尾:任务结束后清理中间产物
  • 按属性筛选:只删除只读或隐藏属性的文件,避免误伤普通文件
  • 预演核对:把删除参数先交给目录列表命令预览命中清单

常用示例

常用示例
:: 预演:先看清会命中哪些文件
dir /s /b D:\Temp\*.tmp
:: 强制静默删除临时文件
del /f /q D:\Temp\*.tmp
:: 递归删除日志分卷
del /s /q D:\Logs\*.log
:: 只删隐藏属性的文件(病毒清理常见)
del /a:h /f D:\Udisk\*.ini
:: 只删只读文件
del /a:r /f /q D:\Data\*.old
:: 查看删除命令的返回码
echo %ERRORLEVEL%

参数速查

参数作用风险提示
/p逐个确认后删除交互场景可用,脚本中会挂住
/f强制删除,含只读文件绕过只读保护,误删后无法恢复
/s递归子目录范围迅速扩大,务必先预览
/q静默模式,不询问脚本默认行为,出错也无提示
/a按属性筛选(隐藏、只读、系统等)写错属性会删到不该动的文件
通配符星号与问号匹配文件名范围最不可控的一种写法
带通配符的删除会直接清场且不通知回收站。养成固定习惯:先把相同参数交给目录列表命令预览命中清单,确认后再把开头换成删除命令执行,两个命令的参数完全一致。
删除正在被程序占用的文件会失败并给出占用提示,这是保护机制而非故障。需要删除时先定位占用进程,或者停掉相关服务后再执行。

易错点

  • 直接执行带通配符的删除:不进回收站且无确认,误删后无法恢复,任何带星号的删除前都要预览
  • 以为删除会连同目录一起清掉:只删文件,目录结构仍需用专门的目录删除命令处理
  • 在错误的工作目录下执行:相对路径会指向预期之外的位置,脚本中应先固定工作目录再删除
  • 忽略占用导致的删除失败:文件被进程占用时会跳过,看起来「删了但还在」,需要先定位占用者
  • 在 PowerShell 中使用同名命令:命中的是另一个命令而非系统程序,行为与预期不同,脚本中应写全名

数据来源与参考

  • Microsoft Learn:del 命令

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌