用 %TEMP% 清理当前用户临时目录
@echo off
setlocal
echo 当前用户: %USERNAME%
echo Temp目录: %TEMP%
:: 删除文件(/f 强制 /s 子目录 /q 静默)
del /f /s /q "%TEMP%\*" >nul 2>&1
:: 删除空文件夹
for /d %%p in ("%TEMP%\*") do rmdir /s /q "%%p" >nul 2>&1
echo 清理完成
pause
%TEMP% 是 Windows 内建变量,直接指向当前用户的临时目录(通常是 C:\Users\用户名\AppData\Local\Temp),不需要手动拼路径。
同时清理系统 Temp(需管理员)
@echo off
setlocal
:: 用户 temp
del /f /s /q "%TEMP%\*" >nul 2>&1
for /d %%p in ("%TEMP%\*") do rmdir /s /q "%%p" >nul 2>&1
:: 系统 temp(需要管理员权限运行)
del /f /s /q "C:\Windows\Temp\*" >nul 2>&1
for /d %%p in ("C:\Windows\Temp\*") do rmdir /s /q "%%p" >nul 2>&1
echo 清理完成
pause
手动拼接路径写法
如果需要明确用户名,也可以用 %USERNAME% 拼路径:
set USER_TEMP=C:\Users\%USERNAME%\AppData\Local\Temp
del /f /s /q "%USER_TEMP%\*" >nul 2>&1
for /d %%p in ("%USER_TEMP%\*") do rmdir /s /q "%%p" >nul 2>&1
两种写法效果一致,推荐用 %TEMP% 更简洁。
常见问题
部分文件删不掉
正常现象。系统正在使用的文件(如浏览器缓存、日志)不会被删,>nul 2>&1 会把错误输出吞掉,脚本继续执行,不影响其他文件的清理。
清理完大小没变化
有些文件夹包含只读属性文件。可以在 del 前加 /a 参数(包含只读):
del /f /s /q /a "%TEMP%\*" >nul 2>&1
不要手动清 C:\Windows\System32\config\systemprofile\AppData\Local\Temp,这是系统服务的临时目录。
设为计划任务定期执行
- 把脚本保存为
clean_temp.bat - 打开”任务计划程序”(Task Scheduler)
- 创建基本任务 → 触发器选”登录时”或”每周”
- 操作选”启动程序” → 指向
clean_temp.bat - 权限选”使用最高权限运行”
这样每次登录自动清理,免手动执行。
