Windows脚本清理C盘缓存

方法一:使用power文件.ps1的文件

脚本功能

  1. 清理临时文件夹:

    • 当前用户的临时文件夹(%Temp%)。
    • 系统临时文件夹(C:\Windows\Temp)。
  2. 清理 Windows 更新缓存:

    • 删除 Windows 更新下载缓存(C:\Windows\SoftwareDistribution\Download)。
  3. 清空回收站:

    • 调用系统接口清空所有用户的回收站。
  4. 清理 Internet Explorer 和 Edge 浏览器缓存:

    • 删除浏览器历史记录、Cookie 和缓存文件。
  5. 清理 Prefetch 文件夹:

    • 删除 Windows 的预取文件(C:\Windows\Prefetch)。
  6. 清理系统日志文件(可选):

    • 清理事件日志文件。

    清理 Windows 缓存和垃圾文件

    Write-Host "开始清理 Windows 缓存和垃圾文件..." -ForegroundColor Green

    设置错误处理

    $ErrorActionPreference = "SilentlyContinue"

    清理临时文件夹

    Write-Host "清理临时文件夹..." -ForegroundColor Cyan
    TempPaths = @( "env:Temp", # 当前用户的临时文件夹
    "env:SystemRoot\Temp" # 系统的临时文件夹 ) foreach (Path in TempPaths) { if (Test-Path Path) {
    Get-ChildItem -Path Path -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue Write-Host "已清理:Path" -ForegroundColor Yellow
    } else {
    Write-Host "路径不存在:$Path" -ForegroundColor Gray
    }
    }

    清理 Windows 更新缓存

    Write-Host "清理 Windows 更新缓存..." -ForegroundColor Cyan
    WindowsUpdateCache = "env:SystemRoot\SoftwareDistribution\Download"
    if (Test-Path WindowsUpdateCache) { Get-ChildItem -Path WindowsUpdateCache -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
    Write-Host "已清理:WindowsUpdateCache" -ForegroundColor Yellow } else { Write-Host "路径不存在:WindowsUpdateCache" -ForegroundColor Gray
    }

    清理回收站

    Write-Host "清理回收站..." -ForegroundColor Cyan
    Shell = New-Object -ComObject Shell.Application RecycleBin = Shell.NameSpace(10) RecycleBin.Items() | ForEach-Object { $_.InvokeVerb("delete") }
    Write-Host "回收站已清空" -ForegroundColor Yellow

    清理浏览器缓存 (Edge/IE)

    Write-Host "清理 Internet Explorer 和 Edge 缓存..." -ForegroundColor Cyan
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255
    Write-Host "已清理 IE 和 Edge 缓存" -ForegroundColor Yellow

    清理 Prefetch 文件

    Write-Host "清理 Prefetch 文件..." -ForegroundColor Cyan
    PrefetchPath = "env:SystemRoot\Prefetch"
    if (Test-Path PrefetchPath) { Get-ChildItem -Path PrefetchPath -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
    Write-Host "已清理:PrefetchPath" -ForegroundColor Yellow } else { Write-Host "路径不存在:PrefetchPath" -ForegroundColor Gray
    }

    清理系统日志文件 (可选)

    Write-Host "清理系统日志文件..." -ForegroundColor Cyan
    wevtutil el | Foreach-Object {wevtutil cl $_}
    Write-Host "系统日志文件已清理" -ForegroundColor Yellow

    清理完成

    Write-Host "所有清理任务已完成!" -ForegroundColor Green

使用说明

  1. 打开记事本,将上述脚本复制并粘贴进去。

  2. 保存文件为 CleanWindowsCache.ps1

  3. 以管理员身份运行 PowerShell。

  4. 在 PowerShell 中导航到脚本所在目录并执行:

    .\CleanWindowsCache.ps1

注意事项

  1. 权限: 脚本需要以管理员权限运行。
  2. 数据丢失风险:
    • 确保重要文件不保存在临时文件夹中。
    • Windows 更新缓存清理后可能需要重新下载更新。
  3. 日志文件清理: 事件日志清理后将无法恢复,如无必要可注释相关部分。

方法二:使用批处理bat

功能与特点

  • 自动清理临时文件、更新缓存、浏览器缓存、回收站和系统日志。

  • 通过批处理脚本执行,直接在命令提示符中运行。

  • 简单高效,支持多种垃圾文件清理。

    @echo off
    title Windows 缓存清理工具
    echo 开始清理 Windows 缓存和垃圾文件...
    echo =======================================
    :: 设置权限
    echo 提升管理员权限运行脚本...
    powershell -Command "Start-Process cmd -ArgumentList '/c %~s0' -Verb RunAs"
    if not "%errorlevel%"=="0" exit /b

    :: 清理临时文件夹
    echo 清理临时文件夹...
    del /s /q %TEMP%* >nul 2>nul
    del /s /q %SystemRoot%\Temp* >nul 2>nul
    echo 临时文件夹已清理!

    :: 清理 Windows 更新缓存
    echo 清理 Windows 更新缓存...
    del /s /q %SystemRoot%\SoftwareDistribution\Download* >nul 2>nul
    echo Windows 更新缓存已清理!

    :: 清空回收站
    echo 清空回收站...
    powershell -Command "& {Shell = New-Object -ComObject Shell.Application; RecycleBin = Shell.Namespace(10); RecycleBin.Items() | ForEach-Object { $_.InvokeVerb('delete') }}"
    echo 回收站已清空!

    :: 清理浏览器缓存 (IE/Edge)
    echo 清理 Internet Explorer 和 Edge 浏览器缓存...
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255
    echo 浏览器缓存已清理!

    :: 清理 Prefetch 文件
    echo 清理 Prefetch 文件...
    del /s /q %SystemRoot%\Prefetch* >nul 2>nul
    echo Prefetch 文件已清理!

    :: 清理系统日志文件 (可选)
    echo 清理系统日志文件...
    for /f %%i in ('wevtutil el') do wevtutil cl "%%i"
    echo 系统日志文件已清理!

    :: 完成
    echo =======================================
    echo 所有清理任务已完成!
    pause
    exit

使用方法

  1. 打开记事本,将上述代码粘贴进去。
  2. 保存文件,文件名如 CleanWindowsCache.bat
    • 保存时选择 文件类型 为 "所有文件"。
    • 文件名后缀为 .bat,例如:CleanWindowsCache.bat
  3. 右键点击生成的 .bat 文件,选择 以管理员身份运行

注意事项

  1. 管理员权限: 必须右键以管理员权限运行,否则可能无法删除某些文件。
  2. 重要文件: 请确认临时文件夹中没有重要文件。
  3. 日志文件: 系统日志清理不可恢复,必要时可以注释相关部分。

补充:知识power知识(具体详情可参考连接

概述

.ps1文件是PowerShell写好的脚本文件。在Windows系统中,默认情况下是不允许执行.ps1文件的,那么怎么才能让系统允许执行.ps1文件呢?

什么是".ps1"文件?

这个是PowerShell写的脚本文本,你可以在记事本中写一段PowerShell代码,然后将其保存为"xxx.ps1",后面要使用它的时候,双击即可运行了。这有点像批处理的".bat"文件,也有点像VBScript的".vbs"文件。这些都是Windows的脚本文件。

如何执行".ps1"文件?

接下来大家会问,那我们就双击它运行好了,还有什么好说的吗?当然要说。我们想得很美,双击一下就执行了,但是Windows系统默认是不允许执行.ps1文件的,所以你得往下看。

执行不成功的解决办法

1、将PowerShell的脚本内容保存到一个.ps1为后缀的文件中。

2、双击执行此ps1文件很有可能无法执行,提示:无法加载文件 D:\PowerShell\test\myfirst1.ps1,因为在此系统中禁止执行脚本。

3、运行get-executionpolicy,如果结果是Restricted,那表示禁止执行脚本。

4、执行如下命令,降低系统的安全性,允许执行脚本:set-executionpolicy -executionpolicy unrestricted

关于执行策略

这里有一个executionpolicy,翻译过来就是执行策略。Windows对PowerShell脚本默认的执行策略是:不允许执行,即Restricted。把它改成unrestricted自然就可以执行了。但微软给出的Best Practise("最佳实践")是RemoteSigned,这个级别比UnRestricted要高一点,不是什么程序都能执行。据我简单的了解,RemoteSigned是要求远程下载的ps1脚本文件必须是签名的才可以执行。至于我们在本机上自写的脚本程序,那是没有区别,都可以执行的。

修改执行策略需要权限

另外需要说明的是,如果是在Win7、Win8、Windows 2008、Windows 2012等系统上,且不是使用administrator账号来执行这个set-executionpolicy语句,将会报错,错误如下:

Set-ExecutionPolicy : 对注册表项"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"的访问被拒绝。

这时候洪哥很疑惑,我使用账号虽然不是administrator,但也是administrators组的,为什么会没有权限呢?不管了,在注册表中,找到这个键,然后点右键选择"权限",然后给当前登录系统的账号加一个"完全控制"的权限(只有"只读"和"完全控制"两个权限,所以就选"完全控制"了)。然后,再重新执行set-executionpolicy -executionpolicy unrestricted,就可以成功了!

相关推荐
cpsvps_net4 小时前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
甄超锋5 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cpsvps7 小时前
美国服务器环境下Windows容器工作负载基于指标的自动扩缩
windows
网硕互联的小客服10 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
etcix10 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
许泽宇的技术分享11 小时前
Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
windows·自动化·.net
2301_7930868711 小时前
Redis 04 Reactor
数据库·redis·缓存
非凡ghost12 小时前
AMS PhotoMaster:全方位提升你的照片编辑体验
windows·学习·信息可视化·软件需求
mortimer13 小时前
一次与“顽固”外部程序的艰难交锋:subprocess 调用exe踩坑实录
windows·python·ai编程
1892280486115 小时前
NY243NY253美光固态闪存NY257NY260
大数据·网络·人工智能·缓存