如何安全清理越来越大的系统C盘之winsxs文件夹

1024阅读15分50秒

70G的电脑系统C盘最近发现只剩下10几个G了,很多软件都装在了D盘,C盘并没有装太多软件,这是怎么回事?系统盘C盘几乎就要爆表飚红了,如何能够安全的清理系统盘C盘呢?

经过家用路由器网小编在系统C盘的逐个文件夹/文件查看大小,发现了Windows目录占用近一半的空间。而Windows目录下的winsxs文件夹居然有10G的空间占用(不同电脑使用时间长短会有一定关系),看到这里小编就有了一个想法,如何安全清理逐个winsxs文件夹。

如何安全清理越来越大的系统C盘之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”双击运行起来如下界面,点击[扫描垃圾]

如何安全清理越来越大的系统C盘之winsxs文件夹

点击【扫描垃圾】开始扫描

2、等待扫描完成

接着上面打开工具后扫描软件支持的一些可安全清除的文件,等待片刻会看到如下图,其中winsxs目录扫出的垃圾文件就是我们想要的,小编的电脑扫出了6.88G的可清理的文件(被淘汰的更新文件)。

如何安全清理越来越大的系统C盘之winsxs文件夹

winsxs清理工具扫描出winsxs目录可清理的文件

3、完成删除操作

在删除的过程中软件会友情提示风险“本工具有一定的风险性。。。。”,一般不用理会(强迫症除外),接着[确定],确定后继续等待一会让软件清理完成。

如何安全清理越来越大的系统C盘之winsxs文件夹

winsxs清理安全温馨提示

如何安全清理越来越大的系统C盘之winsxs文件夹

winsxs清理完成

4、重启电脑

清理完成后,返回界面会有温馨提示,建议重启电脑,如下图点击[重启],等待电脑重启完即可。

如何安全清理越来越大的系统C盘之winsxs文件夹

winsxs清理完成重启电脑

重启完再次运行软件,返现winsxs目录瘦多了,几乎没有可清理的winsxs空间了。

如何安全清理越来越大的系统C盘之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目录,这也是一种备份措施。

如何安全清理越来越大的系统C盘之winsxs文件夹

winsxs批处理转移垃圾文件到新目录

备注:这个批处理软件运行时间根据不同电脑配置和winsxs目录大小可能会有差异,家用路由器网小编运行这个批处理的时间在20分钟左右。


如何安全清理越来越大的系统C盘之winsxs文件夹小结:

对于两种方法家用路由器网小编测试有一定作用,但是清理之后,随着继续使用电脑winsxs目录容易继续增大,这个目前暂时无解。实在忍受不了的,重装系统可能是唯一途径。另外,真心建议如360安全卫士、腾讯管家这两家大厂对于C盘增大的问题,提供更安全靠谱的解决方案。

下载信息 winsxs清理软件
最近更新2020-8-27
网盘密码:发表评论并刷新可见
解压密码:发表评论并刷新可见
下载地址

点开阅读全文
  • 原创内容,谢绝转载。
评论  10  访客  9  作者  1
    • jerry
      jerry 0

      试试

      • wzwcerci
        wzwcerci 0

        很好

        • 1312
          1312 0

          2213zzxzx中心

          • wts
            wts 0

            牛蛙

            • 2
              2 0

              来来来

              • 的
                0

                • 牛皮
                  牛皮 0

                  牛皮

                  • 研究一下
                    研究一下 0

                    学习了,非常有效

                    • S.Q
                      S.Q 0

                      这?

                    匿名

                    发表评论

                    匿名网友 填写信息