如何安全清理越来越大的系统C盘之winsxs文件夹(实用)
70G的电脑系统C盘最近发现只剩下10几个G了,很多软件都装在了D盘,C盘并没有装太多软件,这是怎么回事?系统盘C盘几乎就要爆表飚红了,如何能够安全的清理系统盘C盘呢?
经过家用路由器网小编在系统C盘的逐个文件夹/文件查看大小,发现了Windows目录占用近一半的空间。而Windows目录下的winsxs文件夹居然有10G的空间占用(不同电脑使用时间长短会有一定关系),看到这里小编就有了一个想法,如何安全清理逐个winsxs文件夹。
winsxs目录越来越大
开始这篇教程之前先打开自己电脑的硬盘的C盘按照下面路径:C:\Windows\winsxs(不用进入winsxs)
功夫不负有心人,虽然在百度知道里面很多人都说winsxs这个文件夹(目录)不能删除,的确这个文件夹不能删除,至于winsxs文件夹有什么用,下面简单做个科普:
WinSxS是Windows目录下一个重要的目录,里面的文件是不可删除的。
WinSxS下有很多重要的组件,版本也很繁杂,为了保证Windows的正常运行,请确保这些文件一个都不能少。这些文件支撑着mscorwks.dll,没有它们,mscorwks也无法加载。强行删除后可能只有以安全模式能勉强进入Windows,Windows也就废了。
安全的做法是使用系统自带的释放磁盘空间工具或使用第三方工具,清除service pack备份。
在本文家用路由器网小编来分享两个方法进行安全清除Windows目录下的winsxs目录:
①winsxs清理软件、②bat批处理命令
一、WinSXS清理工具
可能不同的电脑系统清理效果不一样,家用路由器网小编用这个工具清理出6G左右的文件。在文末提供百度网盘下载链接,不愿意看教程步骤的可以直接跳转到文末下载winsxs清理工具。
1、打开winsxs工具软件
下载好的winsxs软件,解压后是绿色版本,也就是不需要安装。里面有一个可执行文件为“Windows Update Clean Tool.exe”双击运行起来如下界面,点击[扫描垃圾]:
点击【扫描垃圾】开始扫描
2、等待扫描完成
接着上面打开工具后扫描软件支持的一些可安全清除的文件,等待片刻会看到如下图,其中winsxs目录扫出的垃圾文件就是我们想要的,小编的电脑扫出了6.88G的可清理的文件(被淘汰的更新文件)。
winsxs清理工具扫描出winsxs目录可清理的文件
3、完成删除操作
在删除的过程中软件会友情提示风险“本工具有一定的风险性。。。。”,一般不用理会(强迫症除外),接着[确定],确定后继续等待一会让软件清理完成。
winsxs清理安全温馨提示
winsxs清理完成
4、重启电脑
清理完成后,返回界面会有温馨提示,建议重启电脑,如下图点击[重启],等待电脑重启完即可。
winsxs清理完成重启电脑
重启完再次运行软件,返现winsxs目录瘦多了,几乎没有可清理的winsxs空间了。
再次清理winsxs目录无可清理文件
二、bat批处理清理winsxs目录
对于bat批处理有些人清除,可能也有人不清楚。不管怎么样这个bat批处理操作起来简单,可以复制下面的代码,放到TXT文档中,然后把TXT文档结尾改成“.bat”,比如winsxs_clear.txt--->winsxs_clear.bat即可。代码如下,另外在下面代码下载中也提供了懒人bat批处理包,可以直接下载来用。
1、代码下载
下面是清理winsxs目录的bat批处理代码,复制"展开"代码或点击下载:
蓝奏(推荐)https://www.lanzous.com/i914hhi(失效)
链接: https://pan.baidu.com/s/14xQIg_liZtV7FwCB_ILePw 提取码: sig5
展开收缩
echo off rem 获取windows版本 set move_dir=%SystemRoot%\winsxs_del if not exist %move_dir%\nul md %move_dir% set winver=none FOR /F "eol=; tokens=4* delims=] " %%i in ('ver') do set winver=%%i if "%winver%" == "none" goto enover echo windows version is %winver%, ready to list winsxs dir. if not exist %SystemRoot%\winsxs\nul goto enosxs set ver_prefix=%winver:~希望您通过这篇文章学到了有用的技巧和知识,让您更好地掌控和管理您的网络。0,-1% echo list winsxs finished! now ready to clear duplicated files echo dir /ad %SystemRoot%\winsxs\*_%ver_prefix%* if "%1" == "run-winsxs-generated" goto :lSkipGen rem 准备生成代码 copy /y "%~f0" "%temp%\%~nx0" > nul echo rem genereted code here >> "%temp%\%~nx0" echo :ldcdStat1 >> "%temp%\%~nx0" echo set end4=%%arg:%ver_prefix%=%%>> "%temp%\%~nx0" echo goto ldcdStat2 >> "%temp%\%~nx0" echo :ldcdStat3 >> "%temp%\%~nx0" echo set end4a=%%arg:%winver%=%%>> "%temp%\%~nx0" echo goto ldcdStat4 >> "%temp%\%~nx0" rem notepad "%temp%\%~nx0" "%temp%\%~nx0" run-winsxs-generated goto :EOF :lSkipGen FOR /F "eol=; tokens=1-4 delims= " %%a in ('dir /ad %SystemRoot%\winsxs\*_%ver_prefix%*') do ( if "%%c" == "<DIR>" call:fnDoClear %%d ) echo clear OK! goto :EOF :enover echo could not get windows version, abort! goto :EOF :enosxs echo not found %SystemRoot%\winsxs! maybe no privilege or lower windows! echo only support windows XP and later! goto :EOF :fnDoClear rem arg: dir_name FOR /F "eol=; tokens=1-14 delims=_" %%g in ("%1") do call:fnDoClearDir %1 %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z goto :EOF :fnDoClearDir rem arg: dir_name dir_parts set d_name=%1 rem 检查参数是否匹配 %winver%, 先跳过前两个.同时准备组合新版本匹配名称,nv1存当前版本,nv2存当前的前一个版本 set nv1=%2_%3_ set nv2=%2_%3_ :ldcdCycle if "%4" == "" goto :EOF rem 检查是否 ver_prefix 开头,如果是则继续检查是否winver,如果不是winver则表示目标存在 set arg=%4 rem set line=set end4=%%arg:%ver_prefix%=%% rem %line% goto ldcdStat1 :ldcdStat2 if "%arg%" == "%end4%" goto ldcdNext rem 检查是否 winver 开头 rem set line=set end4a=%%arg:%winver%=%% rem %line% goto ldcdStat3 :ldcdStat4 if not "%arg%" == "%end4a%" goto :EOF rem 至此则为 ver_prefix 开头 且 不等于 winver 的目录名,检查最新版本是否存在,存在则可删除旧的 set newfound=false for /d %%v in ("%SystemRoot%\winsxs\%nv1%%winver%.*_%5_*") do ( if exist %%v\nul set newfound=true ) if "%newfound%" == "true" call:fnDelDir %d_name% goto :EOF :ldcdNext set nv2=%nv1% set nv1=%nv2%%4_ shift goto ldcdCycle :fnDelDir rem arg: dir echo del %SystemRoot%\winsxs\%1 takeown /r /f "%SystemRoot%\winsxs\%1" cacls "%SystemRoot%\winsxs\%1" /t /e /g everyone:f move "%SystemRoot%\winsxs\%1" "%move_dir%\%1" goto :EOF
2、删除winsxs_del目录
这个批处理的顺序是,先将winsxs下批处理认为没有用的文件移动到新建的文件夹winsxs_del内(这个文件夹是批处理创建的),运行完批处理程序后,重启电脑测试系统没问题后,删除winsxs_del目录即可。如果有问题,就建议将winsxs_del内(不包含文件夹winsxs_del本身),文件在移动回winsxs目录,这也是一种备份措施。
winsxs批处理转移垃圾文件到新目录
备注:这个批处理软件运行时间根据不同电脑配置和winsxs目录大小可能会有差异,家用路由器网小编运行这个批处理的时间在20分钟左右。
如何安全清理越来越大的系统C盘之winsxs文件夹小结:
对于两种方法家用路由器网小编测试有一定作用,但是清理之后,随着继续使用电脑winsxs目录容易继续增大,这个目前暂时无解。实在忍受不了的,重装系统可能是唯一途径。另外,真心建议如360安全卫士、腾讯管家这两家大厂对于C盘增大的问题,提供更安全靠谱的解决方案。
吐槽之360快资讯各种广告(含低俗类)无底线教你如何彻底关闭360安全卫士开机助手右下角的弹窗广告和新闻!继续阅读 20 ~