无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 28293|回复: 131
打印 上一主题 下一主题

【原创】TXTSETUP.SIF减肥和检查错误批处理TSLite V0.9(4月29日更新)

[复制链接]
跳转到指定楼层
1#
发表于 2010-3-10 14:53:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原文出自:http://hi.baidu.com/nictense/blog/item/585b9f09369efbda62d986fc.html (更新版将第一时间于该地址公布)

下版考虑增加3个功能:1、增加行标准格式化处理 2、可选删除注释 3、对[SourceDisksFiles]段多余行的处理(0.9已实现)

更新记录:

4月29日:增加对[SourceDisksFiles]段的处理,同时修正0.8Beta版的一个Bug,因优先级问题,原来对包含CC_段的HWID的精简算法有误,可能会导致个别IDE硬盘找不到硬盘。

3月22日:V0.85 Specail 应zhaohj要求,在V0.8Beta的基础上增加自动合并SUBSYS项功能,可以进一步增强减肥效果,但合并后所有子ID都会被指定使用同一驱动,这对某些特殊型号可能会导致未知错误,故此版定为特殊版,用户可根据自身需要选用。 (暂时取消此版下载)

3月20日:V0.8Beta 进一步改善逻辑重复算法,新版可以查出所有逻辑重复项。另增加对同一HWID指定多个驱动的错误的判断。

3月11日:V0.7Beta 更新了一下代码,对逻辑重复的判断更为全面。


正文:

在反复添加磁盘等驱动后,txtsetup.sif文件很容易变得越来越臃肿,重复和错误在所难免

这个批处理就是为了解决这个问题的,可以自动将重复和逻辑重复的行精简掉

并将精简掉的内容另存为lite.txt,以便查对。

0429以后版本增加对[SourceDisksFiles]段的处理,可以精简掉该段没用的项目,对缺失的则自动补齐必要的信息。

将批处理和txtsetup.sif文件放到同一个目录,并执行批处理即可

下载: tslite.rar (1.02 KB, 下载次数: 1298) ( V0.9,解压密码:www.147.cn )

本工具为无损精简,仅删除多余的语句,不必担心会产生什么不良的后果。

另,如果同一个hwid被指定了2个或以上的驱动,本工具还会找出该错误,并保存到error.txt中,该错误需要手工处理,决定保留其中哪一项。

目前仅处理[HardwareIdsDatabase]部分(主要重复的也就是这部分),有空再加入其他部分的处理


V0.8 实测效果:

我心如水_SERVER_2003_PE_V13.22_维护版

减肥前:97k,减肥后:91k,删除多余行:94行,减肥效果6K

我心如水_XP_PE_V13.22

减肥前:109k,减肥后:87k,删除多余行:350行,减肥效果22k

天琴星座090226龙抬头版

减肥前:108k,减肥后:86kb,删除多余行:339行,减肥效果22K

注:N版原版方案中也有逻辑重复项,不过很少


源代码如下:( TSLite V0.9)
  1. @echo off
  2. setlocal enableextensions
  3. setlocal enabledelayedexpansion
  4. set f=txtsetup.sif
  5. set fn=temp.sif
  6. set fb=txtsetup.bak
  7. set fl=lite.txt
  8. set fe=error.txt
  9. set lite=
  10. if not exist %f% goto error1
  11. title TSLite V0.9 by NicTense
  12. mode con cols=90 lines=30
  13. echo.
  14. echo                             TXTSETUP.SIF 一键减肥批处理 V0.9
  15. echo.
  16. echo                                 Nictense 写于 2010.04.29
  17. echo.
  18. :loop1
  19. set /p LiteSDF=是否处理[SourceDisksFiles]段(Y/N):
  20. if /i "%LiteSDF%" neq "Y" if /i "%LiteSDF%" neq "N" goto loop1
  21. for %%a in (%fn% %fl% %fe%) do if exist %%a del /q %%a >nul
  22. echo.&echo 正在精简!f!,请稍候...
  23. echo.
  24. for /f "tokens=*" %%a in (%f%) do (
  25. set t=%%a
  26. set t=!t: =!
  27. if "!t:~0,1!"=="[" set item=!t!
  28. if /i "!item!"=="[HardwareIdsDatabase]" (
  29. for /f "tokens=1 delims=;" %%b in ("!t!") do set t=%%b
  30. set t1=
  31. set t2=
  32. set t3=
  33. set t4=
  34. set y=
  35. for /f "tokens=1,* delims==" %%c in ("!t!") do (
  36. set driver=%%d
  37. set driver=!driver:"=""!
  38. set s=%%c
  39. for /f "tokens=1,2,3,4 delims=&" %%i in ("!s!") do (
  40. set t1=%%i
  41. if not "%%j"=="" set t2=%%i^&%%j
  42. if not "%%k"=="" set t3=%%i^&%%j^&%%k
  43. set t4=%%l
  44. )
  45. )
  46. if not "!t!"=="[HardwareIdsDatabase]" (
  47. if not "!t2!"=="" find /i "!t1!=!driver!" !f! >nul && set y=y
  48. if "!y!"=="" if not "!t3!"=="" find /i "!t2!=!driver!" !f! >nul && set y=y
  49. if "!y!"=="" if not "!t4!"=="" find /i "!t3!=!driver!" !f! >nul && set y=y
  50. if "!y!"=="" find /i "!s!=!driver!" !fn! >nul && set y=y
  51. )
  52. if "!y!"=="" (
  53. find /i "!s!=" !fn! >nul && echo %%a>>!fe! && set y=e
  54. if "!y!"=="" echo %%a>>!fn!
  55. ) else echo 删除行 %%a & set "lite=y" & echo %%a>>!fl!
  56. ) else (
  57. if /i "%LiteSDF%"=="Y" (
  58. if "!item!"=="[SourceDisksFiles]" (
  59. if "!t!"=="[SourceDisksFiles]" (
  60. echo [SourceDisksFiles]>>!fn!
  61. echo c_936.nls=100,,,,,,,2,0,0,,1,2 >>!fn!
  62. echo kdcom.dll=100,,,,,,,2,0,0,,1,2 >>!fn!
  63. echo ntdll.dll=100,,,,,,,2,0,0,,1,2 >>!fn!
  64. echo ntoskrnl.exe=100,,,,,,,2,0,0,,1,2 >>!fn!
  65. echo setupreg.hiv=100,,,,,,,2,0,0,,1,2 >>!fn!
  66. echo vgaoem.fon=100,,,,,,,2,0,0,,1,2 >>!fn!
  67. set lite=s
  68. echo [SourceDisksFiles]段处理完毕!&echo.
  69. )
  70. ) else echo %%a>>!fn!
  71. ) else echo %%a>>!fn!
  72. )
  73. )
  74. if "%Lite%"=="" (
  75. echo 该文件不需要精简!
  76. del /q %fn% >nul
  77. ) else (
  78. echo.
  79. echo 完成!原文件已备份为 %fb%
  80. if "%Lite%"=="y" echo.&echo 精简部分(不包括[SourceDisksFiles]段)已保存为 %fl%
  81. move /y %f% %fb% >nul
  82. move /y %fn% %f% >nul
  83. )
  84. if exist %fe% echo.&echo 一些错误需要手工处理,具体请查看 %fe% 文件
  85. goto end
  86. :error1
  87. echo 找不到文件 %f%
  88. :end
  89. echo.
  90. echo 按任意键退出!
  91. pause>nul
复制代码
本人近期发布帖子汇总,方便查询

【下载】Tango WinPE 2010 虎年珍藏版,32M新版XP3内核PE

【原创】为你的PE系统添加计算机型号和CPU识别功能

【原创】TXTSETUP.SIF减肥和检查错误批处理TSLite

【原创】玩转PE墙纸(开机随机显示墙纸+一键切换循环显示)

【下载】通用型PE一键美化工具PEBeautify+TangoPE美化包(PE美化,只需10秒)

【分享】利用PECMD和MSPAINT实现零体积一键截图功能

【原创】shell32.dll的终极精简&美化教程 (这个是很久前的了)

[ 本帖最后由 NicTense 于 2010-4-29 19:10 编辑 ]

评分

参与人数 2无忧币 +20 收起 理由
66369 + 10 精品文章
北斗 + 10 原创内容

查看全部评分

2#
发表于 2010-3-10 15:11:36 | 只看该作者
绝对是好东西,第一个支持!
回复

使用道具 举报

3#
发表于 2010-3-10 15:53:20 | 只看该作者
逆天使兄的批处理编的真好
回复

使用道具 举报

4#
发表于 2010-3-10 16:00:31 | 只看该作者
恩,实用的东东。在这混了好多年,像楼主这样的人很少见,敬佩你!
回复

使用道具 举报

5#
发表于 2010-3-10 17:10:45 | 只看该作者
支持一下,感谢楼主分享!
回复

使用道具 举报

6#
发表于 2010-3-10 17:46:30 | 只看该作者
呵呵。。不错的东西。。。哦。收藏先
回复

使用道具 举报

7#
发表于 2010-3-10 18:25:57 | 只看该作者
不拿不行,拿了就顶,我顶顶顶
回复

使用道具 举报

8#
发表于 2010-3-10 18:35:36 | 只看该作者
帮顶,虽然目前自己懒的动手,下载备用
回复

使用道具 举报

9#
发表于 2010-3-10 18:50:12 | 只看该作者
这东西好,,我顶!!

不过记得毛桃兄最开始的TXTSETUP.SIF中,有些项目是特意重复的,
回复

使用道具 举报

10#
发表于 2010-3-10 19:31:30 | 只看该作者
好东西啊,高手啊好。。。。。。
回复

使用道具 举报

11#
发表于 2010-3-10 19:38:44 | 只看该作者
省了好多事,谢谢!试一试去!
回复

使用道具 举报

12#
发表于 2010-3-10 20:55:42 | 只看该作者
确实好东西,谢谢分享!
回复

使用道具 举报

13#
发表于 2010-3-10 21:10:16 | 只看该作者
天使就是特别哈.支持后再仔细看............
回复

使用道具 举报

14#
发表于 2010-3-10 21:15:54 | 只看该作者
这种人才,
让无忧技术氛围与众不同!
不佩服就是与自己过不去!
回复

使用道具 举报

15#
发表于 2010-3-10 21:28:33 | 只看该作者
不顶不行,先收藏再说!
回复

使用道具 举报

16#
发表于 2010-3-10 21:47:00 | 只看该作者
天使兄有这么好的东西分享,太感谢了!
回复

使用道具 举报

17#
 楼主| 发表于 2010-3-10 22:21:08 | 只看该作者
原帖由 网虫2008 于 2010-3-10 18:50 发表
这东西好,,我顶!!

不过记得毛桃兄最开始的TXTSETUP.SIF中,有些项目是特意重复的,


具体说一下,我现在对txtsetup还是一知半解,所以有些地方不敢动手

我只研究过天琴的文件,貌似可以精简掉的地方还是挺多的

不过老毛桃很多地方的写法都有一些小问题的,很多一直沿用至今

[ 本帖最后由 NicTense 于 2010-3-10 22:55 编辑 ]
回复

使用道具 举报

18#
发表于 2010-3-11 00:00:46 | 只看该作者
逆天使也是高人。。。。
回复

使用道具 举报

19#
发表于 2010-3-11 00:04:45 | 只看该作者
好东西,支持一个。

对9楼的问题比较关注。
回复

使用道具 举报

20#
发表于 2010-3-11 08:43:07 | 只看该作者
原帖由 NicTense 于 2010-3-10 22:21 发表


具体说一下,我现在对txtsetup还是一知半解,所以有些地方不敢动手

我只研究过天琴的文件,貌似可以精简掉的地方还是挺多的

不过老毛桃很多地方的写法都有一些小问题的,很多一直沿用至今


我对这个问题也是一知半解,只是N久之前看到过相关的帖子,现在找不到了......

要不问下netwinxp和dve008吧,他们一定能给你个好的建议。
回复

使用道具 举报

21#
发表于 2010-3-11 09:05:22 | 只看该作者
好东东哦,支持一下,下载试试
回复

使用道具 举报

22#
 楼主| 发表于 2010-3-11 11:03:49 | 只看该作者
原帖由 网虫2008 于 2010-3-11 08:43 发表


我对这个问题也是一知半解,只是N久之前看到过相关的帖子,现在找不到了......

要不问下netwinxp和dve008吧,他们一定能给你个好的建议。


其实像这样你不如不说,据我所知,没有什么需要特意重复的
回复

使用道具 举报

23#
发表于 2010-3-11 11:23:28 | 只看该作者
原帖由 NicTense 于 2010-3-11 11:03 发表


其实像这样你不如不说,据我所知,没有什么需要特意重复的


我只是找不到相关帖子给你看了。

记得好像是什么识别顺序呀之类的原因。如果你觉得没必要,当我没说好了。
回复

使用道具 举报

24#
发表于 2010-3-11 11:25:29 | 只看该作者
能否增加合并功能,如:
PCI\VEN_8086&DEV_27c3&SUBSYS_10a51734="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_834E1033="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_82E81033="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_83511033="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_83521033="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_27C31458="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_27C01458="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_819E1043="MegaSR"
如果没有其他PCI\VEN_8086&DEV_27c3=***,就合并PCI\VEN_8086&DEV_27c3="MegaSR"
回复

使用道具 举报

25#
 楼主| 发表于 2010-3-11 11:28:20 | 只看该作者
原帖由 zhaohj 于 2010-3-11 11:25 发表
能否增加合并功能,如:
PCI\VEN_8086&DEV_27c3&SUBSYS_10a51734="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_834E1033="MegaSR"
PCI\VEN_8086&DEV_27c3&SUBSYS_82E81033="MegaSR"
PCI\VEN_8086&DEV_27c3&SU ...


这个可以实现,但是我不确定这样是否会出问题

n版加驱动的时候貌似有些觉得驱动可能有问题就放弃了,也就是说,宁可不显示硬盘

如果这样子改的话,有可能会出现一种情况

就是本来可能是无驱动的情况,硬着头皮给他驱动,结果就蓝屏了

另外就是,批处理的字符处理能力非常差,像这种估计得2次扫描才能实现,效率比较低
回复

使用道具 举报

26#
 楼主| 发表于 2010-3-11 11:31:08 | 只看该作者
原帖由 网虫2008 于 2010-3-11 11:23 发表


我只是找不到相关帖子给你看了。

记得好像是什么识别顺序呀之类的原因。如果你觉得没必要,当我没说好了。


没别的意思,别误会,我是说,如果制造了一个模棱两可的疑团,又不能说清楚,还不如没有这个疑团
回复

使用道具 举报

27#
发表于 2010-3-11 11:48:16 | 只看该作者
原帖由 NicTense 于 2010-3-11 11:28 发表


这个可以实现,但是我不确定这样是否会出问题

n版加驱动的时候貌似有些觉得驱动可能有问题就放弃了,也就是说,宁可不显示硬盘

如果这样子改的话,有可能会出现一种情况

就是本来可能是无驱动的情 ...


主要的解决驱动外置的问题。现在的[HardwareIdsDatabase]部分越来越大,CHKPCI是有限制的,不可以超过60KB。
N版也久未放出新的版本。
回复

使用道具 举报

28#
 楼主| 发表于 2010-3-11 13:54:00 | 只看该作者
更新了一下代码,对逻辑重复判断更全面,实际测试多删除了2行

相关原理已向n版求证过,实为无损精简,不会有任何负作用

下一步考虑对[SourceDisksFiles]部分进行精简
回复

使用道具 举报

29#
发表于 2010-3-11 15:14:47 | 只看该作者
收藏樓主好東東。。謝謝分享。
回复

使用道具 举报

30#
发表于 2010-3-11 18:23:33 | 只看该作者
感谢分享和提供下载了 呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-24 16:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表