Windows 上怎么清理临时文件?
先用 forfiles 预览旧文件,再用 PowerShell 清空 %TEMP%,最后用磁盘清理确认空间已释放。
先查看 %TEMP% 里有什么,只删确实过期的文件,再用 PowerShell 清空临时文件夹。
快速开始
安装程序、浏览器和各类应用会不断留下临时文件。它们通常可以安全删除,但正在使用的文件不能碰。下面按“先检查、再清理、后确认”的顺序处理,既能释放空间,也能避免误删。
症状
?Windows 提示磁盘空间不足,C 盘在删掉文档后仍然越来越满,或者 %TEMP% 已经涨到好几个 GB。临时文件夹太大时,部分应用也会变慢。
先预览临时文件夹里的旧文件
删除之前,先按时间筛选,看看哪些文件真的够旧、可以删。把路径换成 %TEMP%(在命令提示符里输入 echo %TEMP% 可看到实际位置),再按需要调整天数,比如 30 天。这里的 echo 只列出文件路径,不会删除任何东西;如果列表为空,说明没有按时间可安全清理的旧文件。
Windows 里被遗忘的 find -mtime 等价物——按文件年龄筛选并对其执行命令。
命令
$ forfiles /P "C:\Logs" /S /M *.log /D -30 /C "cmd /c echo @path"用 PowerShell 清空 %TEMP%
先关掉正在运行的程序和安装程序,再从 PowerShell 清空当前用户的临时文件夹。命令会递归删除内容,遇到被占用的文件会跳过,不会让整个操作失败。清理后文件夹应迅速变空;如果还有残留,通常是被进程占用,重启后再清即可。
不用第三方清理工具,直接清空 %TEMP% 临时文件夹释放磁盘空间。
命令
$ Remove-Item "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue用磁盘清理确认结果
在系统盘上运行磁盘清理,等它扫描完,查看“临时文件”这一类的大小。此时应该显示很小或为零,并且可用空间已经回升。如果临时文件仍然很大,说明部分文件被占用;重启电脑后再执行一次 PowerShell 清理即可。
保存一次清理配置,之后可无人值守定时运行。
命令
$ cleanmgr /sageset:1!清理临时文件有较高风险:正在运行的安装程序、更新或应用可能还在使用 %TEMP% 里的文件。操作前先关闭应用,并且只删除文件夹内容,不要删掉临时文件夹本身。被占用的文件会被跳过;如果某个应用出错,重启或重新安装让它重建所需文件。
如何确认已解决
再运行一次磁盘清理:“临时文件”类别应该接近零,可用空间有所增加。应用也不应报错说临时数据丢失。
来源
- Remove-Item (Microsoft.PowerShell.Management)依据: Documents -Recurse to delete folders with children, -Force for hidden/readonly items, and -ErrorAction SilentlyContinue behavior.
- Remove-Item — Delete files and folders依据: Shows Remove-Item with -Recurse and -Force used to delete directory trees.
- cleanmgr - Windows Commands依据: Documents cleanmgr /sageset:n to configure a saved cleanup profile and /sagerun:n to run it unattended.
- CleanMgr - Automated Cleanup of Temp Files依据: Explains the sageset/sagerun workflow and the registry location where the cleanup profile is stored.
- FORFILES - Windows CMD依据: SS64 documents /D -30 as files last modified more than 30 days ago, and shows "cmd /c del @path" as the standard deletion pattern.
- forfiles | Microsoft Learn依据: Microsoft documents forfiles /D +/-n to select files with last-modified date older/newer than n days, /S for recursion, and /C to run a command per file with @path variables.
最后验证: 2026-09-22