为Windows7的winsxs文件夹瘦身win764位经过测试

上传人:宝路 文档编号:2463038 上传时间:2017-07-24 格式:DOCX 页数:7 大小:47.08KB
返回 下载 相关 举报
为Windows7的winsxs文件夹瘦身win764位经过测试_第1页
第1页 / 共7页
为Windows7的winsxs文件夹瘦身win764位经过测试_第2页
第2页 / 共7页
为Windows7的winsxs文件夹瘦身win764位经过测试_第3页
第3页 / 共7页
为Windows7的winsxs文件夹瘦身win764位经过测试_第4页
第4页 / 共7页
为Windows7的winsxs文件夹瘦身win764位经过测试_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《为Windows7的winsxs文件夹瘦身win764位经过测试》由会员分享,可在线阅读,更多相关《为Windows7的winsxs文件夹瘦身win764位经过测试(7页珍藏版)》请在金锄头文库上搜索。

1、为 Windows 7 的 winsxs 文件夹瘦身,慎重刚使用 Win7 系统不久,前段时间在清理系统垃圾时发现,win7 系统的windows 目录下的 winsxs 目录占用空间非常大,想清理之,却提示无权限无法清理。随即在网上查了个究竟,原来 winsxs 是一个超大的文件仓库,系统所在分区几乎所有的系统文件都在那里至少有一个备份。而且随着系统的使用,winsxs 的所占的空间还将不断的积累壮大,最终将吞噬整个系统分区的磁盘空间。下面附上搜索来的一篇 winsxs 的详细描述文摘、winsxs 的瘦身方法和一篇关于 DLL Hell 问题 的描述文摘和大家分享:winsxs 的详细描述

2、文摘:*winsxs 的文件夹位于 Windows 根目录,是一个超大的文件仓库,系统所在分区几乎所有的系统文件都在那里至少有一个备份。有兴趣的网友不妨通过搜索功能在 winsxs 搜一下公用视频、公用图片、公用音乐文件夹里的文件,你会发现那些精简系统时已经被删除了的文件在 winsxs 里还可以找到影子。假如系统文件被删除或者破坏,用命令 sfc /scannow 就可以恢复,但如果将 winsxs 里面的任何一个重要的组件删除,sfc 命令就会失效。系统在线更新的过程是旧版本文件被新版本的取代,旧文件自动备份在 winsxs 里;卸载补丁的过程是系统新版本文件被旧版本的取代,而旧版本文件的

3、来源正是 winsxs。XP 也有类似的功能,但 XP 下备份文件是可以直接删除的,Vista 和 Win7 下不行。所以 Vista和 Win7 占用的空间随着更新增多会越来越大,而且大得惊人。winsxs 里的文件非常重要,建议不要删除,以我长期的实践经验,暂时发现只有ManifestCache 和 Temp 两个文件夹里的缓存文件才可以安全删除。特别提醒:网上所有精简 winsxs 的方法都有一定的危险性(微软官方的工具除外),例如“删除 Backup 文件夹或用空文件取代同名文件”,虽然它叫Backup,但里面绝对不是备份文件而是关系到系统能否正常更新和正常“打开或关闭 Windows

4、 功能”的重要文件,某些大量被转载的文章都在误导人。某软件提供删除 Windows 内置字体,帮助文件的方法,其实这对于精简系统是没有任何意义的,字体和帮助文件在 winsxs 还有一个备份,两个相同的文件共用一个储存空间,换句话说,删除前和删除后 C 盘可用空间不变!但是注意,如果你查看文件或者文件夹的属性,他们都会占空间。又如有人提出删除 winsxs 里同名文件较低版本的一个或几个,这是一个很好的想法,但问题是有些同名文件的不同版本都有重要作用,都不能删除,例如.Net Framework 的相关组件。*winsxs 的瘦身方法:*清理 winsxs 的小工具 因为磁盘空间不够了,所以想

5、起来清理一下系统垃圾文件,主要目标就是臭名昭著的 winsxs 目录。这个 winsxs 就是微软为了解决“dll hell”问题,结果是好比在 windows 系统里安置了一个毫无节制不断增大的“肿瘤”。听说微软研究院现在在研究这个问题,不过我想我的硬盘空间不够大,等不到这个补丁出来的时候,所以只好自己动手了。winsxs 目录下的文件都是系统要用的各种库文件,system32 下存放了这些 dll的最新的版本,所有老版本的 dll 都放在 winsxs 下。所以只要你安装程序或者更新补丁,system32 下的文件就会被更新,而同时 winsxs 就会增加一些旧文件,所以我们的 C 盘空间

6、就在持续不断地减少,直到磁盘容量不够,被迫重装系统为止,如果你足够幸运,可以直接安装最新的 SP 的话,或许可以为winsxs 节约一点微薄的空间。winsxs 目录下的不同版本文件都存放在特定命名规则的目录下,比如C:Windowswinsxsdir msil_microsoft.transactions.bridge.resources*驱动器 C 中的卷是 vista卷的序列号是 989F-EFF3 C:Windowswinsxs 的目录 msil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6000.1638

7、6_zh-cn_1cde5a17d78fb5ecmsil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6000.16716_zh-cn_1cd75781d79605cfmsil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6000.20876_zh-cn_060fb27df137fddfmsil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6001.18000_z

8、h-cn_1cb2dbd3d7e75eb8msil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6001.18106_zh-cn_1cb252ffd7e7f8cfmsil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6001.22221_zh-cn_05e71ebbf18d0b5emsil_microsoft.transactions.bridge.resources_b03f5f7f11d50a3a_6.0.6002.18005_zh-c

9、n_1c8e610fd838f2cc0 个文件 0 字节7 个目录 5,382,139,904 可用字节这里的各个部分用下划线分割,其中我们关注的是“6.0.6000.16386”部分,它表示旧文件的版本号,之前则是唯一文件标识,之后是语言,最后部分是散列值(防止名字冲突)。本工具的设计思想就是删除所有的旧文件。所有满足如下全部条件的目录都会被移动到 C:Windowswinsxs_del 目录中。存在比自身更新的版本 本身不是最新版本运行工具前的 C 盘剩余空间:所列文件总数:4473 个文件 3,336,376,627 字节7655 个目录 326,840,320 可用字节 C:Windo

10、wswinsxs_del运行工具并且执行命令for /d %v in (%SystemRoot%winsxs_del*.*) do rd /s /q %v删除所有可以删除的无用文件之后的剩余空间:所列文件总数:52 个文件 7,555,048 字节131 个目录 5,383,979,008 可用字节 C:Windowswinsxs_del工具源代码如下:请保存为 winsxs_clear.bat 即可。所有不再需要的文件会移动到 c:windowswinsxs_del 目录中,可以直接进行删除。执行时候,务必请使用“管理员”权限。echo offrem 获取 windows 版本set mov

11、e_dir=%SystemRoot%winsxs_delif not exist %move_dir%nul md %move_dir%set winver=noneFOR /F eol=; tokens=4* delims= %i in (ver) do set winver=%iif %winver% = none goto enoverecho windows version is %winver%, ready to list winsxs dir.if not exist %SystemRoot%winsxsnul goto enosxsset ver_prefix=%winver:

12、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 :lSkipGenrem 准备生成代码copy /y %f0 %temp%nx0 nulecho rem genereted code here %temp%nx0echo :ldcdStat1 %temp%nx0echo set end4=%arg:%ver_prefix%=% %temp%nx0ec

13、ho goto ldcdStat2 %temp%nx0echo :ldcdStat3 %temp%nx0echo set end4a=%arg:%winver%=% %temp%nx0echo goto ldcdStat4 %temp%nx0rem notepad %temp%nx0%temp%nx0 run-winsxs-generatedgoto :EOF:lSkipGenFOR /F eol=; tokens=1-4 delims= %a in (dir /ad %SystemRoot%winsxs*_%ver_prefix%*) do (if %c = call:fnDoClear %

14、d)echo clear OK!goto :EOF:enoverecho could not get windows version, abort!goto :EOF:enosxsecho not found %SystemRoot%winsxs! maybe no privilege or lower windows!echo only support windows XP and later!goto :EOF:fnDoClearrem arg: dir_nameFOR /F eol=; tokens=1-14 delims=_ %g in (%1) do call:fnDoClearDi

15、r %1 %g %h %i %j %k %l %m n %o %p %q %r %s %t %u %v %w %x %y %zgoto :EOF:fnDoClearDir rem arg: dir_name dir_parts set d_name=%1rem 检查参数是否匹配 %winver%, 先跳过前两个.同时准备组合新版本匹配名称,nv1 存当前版本,nv2 存当前的前一个版本set nv1=%2_%3_set nv2=%2_%3_:ldcdCycleif %4 = goto :EOFrem 检查是否 ver_prefix 开头,如果是则继续检查是否 winver,如果不是winver 则表示目标存在set arg=%4rem set line=set end4=%arg:%ver_prefix%=%rem %line%goto ldcdStat1:ldcdStat2if %arg% = %end4% goto ldcdNextrem 检查是否 winver 开头rem set line=set end4a=%arg:%winver%=%rem %line%goto ldcdStat3:ldcdStat4if not %arg% = %end4a% goto :EOFrem 至此则为 ver_prefix 开头 且 不等于 winver 的目录名,检查最新版

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号