[winsxs文件夹清理.docVIP

  • 6
  • 0
  • 约3.84千字
  • 约 7页
  • 2017-01-06 发布于北京
  • 举报
[winsxs文件夹清理

清理winsxs文件夹winsxs的文件夹位于Windows根目录,是一个超大的文件仓库,系统所在分区几乎所有的系统文件都在那里至少有一个备份。有兴趣的网友不妨通过搜索功能在winsxs搜一下公用视频、公用图片、公用音乐文件夹里的文件,你会发现那些精简系统时已经被删除了的文件在winsxs里还可以找到影子。假如系统文件被删除或者破坏,用命令sfc /scannow就可以恢复,但如果将winsxs里面的任何一个重要的组件删除,sfc命令就会失效。系统在线更新的过程是旧版本文件被新版本的取代,旧文件自动备份在winsxs里;卸载补丁的过程是系统新版本文件被旧版本的取代,而旧版本文件的来源正是winsxs。XP也有类似的功能,但XP下备份文件是可以直接删除的,Vista和Win7下不行。所以Vista和Win7占用的空间随着更新增多会越来越大,而且大得惊人。winsxs里的文件非常重要,建议不要删除,以我长期的实践经验,暂时发现只有ManifestCache和Temp两个文件夹里的缓存文件才可以安全删除。 ??????? 特别提醒:网上所有精简winsxs的方法都有一定的危险性(微软官方的工具除外),例如“删除Backup文件夹或用空文件取代同名文件”,虽然它叫Backup,但里面绝对不是备份文件而是关系到系统能否正常更新和正常“打开或关闭Windows功能”的重要文件,某些大量被转载的文章都在误导人。某软件提供删除Windows内置字体,帮助文件的方法,其实这对于精简系统是没有任何意义的,字体和帮助文件在winsxs还有一个备份,两个相同的文件共用一个储存空间,换句话说,删除前和删除后C盘可用空间不变!但是注意,如果你查看文件或者文件夹的属性,他们都会占空间。又如有人提出删除winsxs里同名文件较低版本的一个或几个,这是一个很好的想法,但问题是有些同名文件的不同版本都有重要作用,都不能删除,例如.Net Framework的相关组件。 ??????? winsxs的瘦身方法: ??????? winsxs目录下的文件都是系统要用的各种库文件,system32下存放了这些dll的最新的版本,所有老版本的dll都放在winsxs下。所以只要你安装程序或者更新补丁,system32下的文件就会被更新,而同时winsxs就会增加一些旧文件,所以我们的C盘空间就在持续不断地减少,直到磁盘容量不够,被迫重装系统为止,如果你足够幸运,可以直接安装最新的SP的话,或许可以为winsxs节约一点微薄的空间。 本工具的设计思想就是删除所有的旧文件。所有满足如下全部条件的目录都会被移动C:\Windows\winsxs_del目录中。 ??????? 工具源代码如下红色字体部分,请保存为.bat格式即可。所有不再需要的文件会移动到c:\windows\winsxs_del目录中,可以直接进行删除。执行时候,务必请使用“管理员”权限。 @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%=%%

文档评论(0)

1亿VIP精品文档

相关文档