系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

del

删除文件或目录内的文件,不进回收站。

补充说明

del(同 erase)删除一个或多个文件,支持通配符、递归子目录、按属性筛选和逐文件确认。/s 进入所有子目录,/q 关闭确认,/f 强制删除只读文件,/a 按属性选择文件,/p 每个文件都询问。它适合清理临时文件、旧日志和构建产物。

边界:del 不删除目录本身;如果参数是目录,它会删除该目录内的文件(官方说明),目录仍在,删除目录用 rd。删除不经过回收站,也不能撤销。对目录符号链接或 junction 使用 del 时,它会把链接当目录并删除目标里的文件,删除链接必须用 rd。需要按时间清理时,用 forfiles 生成文件列表再交给 del。

Windows 10/11 与 Server 2016+ 的 del 行为一致。CMD 的 del 是内部命令;PowerShell 中 del 是 Remove-Item 的别名,没有 /s、/q、/a 这些开关,递归用 -Recurse,强制用 -Force。

影响范围 / 先备份 / 如何回滚:del 删除的文件不会进入回收站,/s /q 会静默递归删除匹配项。执行前先用同样的通配符跑 dir 预演并核对路径,把要保留的数据复制到另一块盘或做卷影副本;误删后只能从备份、卷影副本、文件历史恢复,或停止写入后用恢复工具尝试。

常用示例

# 1. 先用 dir 预演要删的临时文件
C:\> dir /A:-D /S C:\build\*.tmp

# 2. 确认后静默删除这些临时文件
C:\> del /Q C:\build\*.tmp

# 3. 递归清理构建中间目录,危险操作先核对路径
C:\> del /S /Q C:\build\obj\*

# 4. 删除隐藏且只读的文件,需要同时给 /F 和 /A
C:\> del /F /A:H C:\temp\hidden-readonly.log

# 5. 手工删除时逐个确认
C:\> del /P C:\logs\app.log

# 6. 只清理 30 天前的日志,避免误删正在写的文件
C:\> forfiles /P C:\logs /M *.log /D -30 /C "cmd /c del /Q @path"

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. del C:\data 会删除 data 目录本身吗?实际删了什么?
  2. 为什么 del t97* 可能删掉 t.txt2?执行前怎样验证?
  3. 删除目录符号链接应该用什么命令?用 del 有什么风险?
答案
  1. 不会删目录,只删除目录内的文件;删目录用 rd。
  2. * 会匹配 8.3 短名 T97B4~1.TXT;先用 dir /X t97* 预演。
  3. 用 rd 删链接;del 会把目录链接当目录,删除目标里的文件。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令