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,就可以成功了!

相关推荐
染指11102 小时前
50.第二阶段x86游戏实战2-lua获取本地寻路,跨地图寻路和获取当前地图id
c++·windows·lua·游戏安全·反游戏外挂·游戏逆向·luastudio
dntktop3 小时前
Converseen:全能免费批量图像处理专家
windows
kong79069284 小时前
电商项目-网站首页高可用(二)
缓存·二级缓存·网站首页高可用
蚁景网络安全5 小时前
Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本
windows·microsoft
科马6 小时前
【Redis】缓存
数据库·redis·spring·缓存
Camllia376 小时前
电脑运行库DirectX出问题怎么办?
windows·经验分享·电脑
m0_748248236 小时前
前端项目打包部署后,如何避免让用户强制去清除浏览器缓存
前端·缓存
总是学不会.7 小时前
【集合】Java 8 - Stream API 17种常用操作与案例详解
java·windows·spring boot·mysql·intellij-idea·java集合
mxbb.7 小时前
单点Redis所面临的问题及解决方法
java·数据库·redis·缓存