无忧启动论坛

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

[分享] PE自动检测安装驱动 外置组件[01-17更新]

  [复制链接]
1#
发表于 2006-12-19 12:56:12 | 显示全部楼层
  可以做个不生成临时文件的批处理,并且代码还可以精简,至少最开始的某些 set 语句可以不要。
回复

使用道具 举报

2#
发表于 2006-12-19 20:15:52 | 显示全部楼层
  关于达到最大递归层的问题,可以把 setlocal enabledelayedexpansion 放到 for 语句之前来解决,因为在 for 语句中,setlocal 语句最多只能嵌套15(此说法有误,应为32层,谢谢 chenall 兄提醒)层,超过就会出错,必须通过 endlocal 来终止,而放到 for 之外,则可以避免这个问题。但是,启用变量延迟会带来一个副作用,就是碰到要处理的字符串中的叹号时会抛弃所有的叹号,根本的解决办法是不用变量延迟,而改用 call 语句来实现。

Re chenall:

  因为我对PE似懂非懂,不敢信口开河,倒是批处理,还算得上略有心得,我们可以就批处理交流交流。站内联系哈。

[ 本帖最后由 namejm 于 2006-12-19 11:24 PM 编辑 ]
回复

使用道具 举报

3#
发表于 2006-12-20 12:57:57 | 显示全部楼层
原帖由 lxl1638 于 2006-12-20 09:32 AM 发表


可以预到,通过硬件ID查找INF文件,再分析INF文件,从中把驱动所需的文件复制到PE系统中,这个过程会很慢。本人系统中的INF目录(不算它的下一级目录),就有近1000个文件,40多MB。

  速度不一定很慢,关键看代码如何编写。在我的机子上测试,从130多个inf文件中搜索对应的inf,也不过是1到两秒的事情。1000多个inf中,应该不超过20s吧,这样的速度应该可以接受的。
回复

使用道具 举报

4#
发表于 2006-12-20 22:12:04 | 显示全部楼层
原帖由 chenall 于 2006-12-20 02:15 PM 发表


有没有可以在CMD下查找搜索的工具.
系统自带的FINDSTR不支持UNICODE.我本来想用FINDSTR.这个行不通了.
使用FIND不是很好处理.
这个如果解决了,那下一版将有可能采用这个模式.
至于查找速度,我有试过了应该 ...

  这个问题我在DOS联盟里已经说过了,可以用 type 或者 more 来对付 Unicode 文件,速度还是相当快的,这个 chenall 兄不必担心。
回复

使用道具 举报

5#
发表于 2006-12-22 08:36:10 | 显示全部楼层
  我来提一下精简代码方面的建议:
  bartpe -v -pnp^|find /i "Found Device:" 一节,有两处是重复的,不同的只是 call 部分的不同而已,完全可以通过 if 来合并这两部分,效率还可以有所提升;
  观察了几个 for 语句,in 部分并没有带空格的路径,所以 usebackq 部分可以取消。

  另外,如果要提取的 devid 部分有好几个 & ,则只用 tokens=3,4 是无法完全提取的。

[ 本帖最后由 namejm 于 2006-12-22 08:38 AM 编辑 ]
回复

使用道具 举报

6#
发表于 2006-12-22 12:35:40 | 显示全部楼层
  原来两次用 bartpe -v -png 时的状态不一样,是 start /w InfCacheBuild.exe %tmp_dir% 这一句在起作用吧?呵呵,对这两个东西完全不懂,见笑了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-13 01:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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