删除文件或目录内的文件,不进回收站。
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"
del C:\data 不会删除 data 目录,而是删除它里面的文件;要删目录本身用 rd,要连内容一起删用 rd /s。del t97* 会同时删掉 t97.txt 和短名为 T97B4~1.TXT 的 t.txt2。删除前先用 dir /X 预演同一模式。/s /q 全程无提示,路径写错会直接扩大影响。脚本中先 echo 完整路径并做 if exist 判断,重要目录先备份。del 对目录链接会删除目标内的文件,而不是只删链接;删除目录链接统一用 rd,用 dir /AL 辨认。/f,隐藏或系统文件需要 /a 选中;否则会报拒绝访问或提示找不到文件,先用 attrib 查看属性。/s /q 掩盖错误。合上页面,先回答,再展开对照。
del C:\data 会删除 data 目录本身吗?实际删了什么?del t97* 可能删掉 t.txt2?执行前怎样验证?del 有什么风险?rd。* 会匹配 8.3 短名 T97B4~1.TXT;先用 dir /X t97* 预演。rd 删链接;del 会把目录链接当目录,删除目标里的文件。
小程序版
微信扫码,随时查命令