找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: mdyblog

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

   火... [复制链接]
发表于 2017-6-5 23:17:34 来自手机 | 显示全部楼层
本帖最后由 红毛樱木 于 2017-6-5 23:27 编辑
mdyblog 发表于 2017-6-5 20:47
那和直接PECMD调用devcon不一样的效果吗?


现在的pecmd匹配驱动,默认截取设备唯一ID的前两段,这种做法不科学。
实际使用中需要更复杂的算法。
比如设备管理器中显示的ID信息有“硬件ID”和“兼容个ID”,这两个信息本身就有多行,而去匹配inf中的ID应该去拿这些整行整行的信息去匹配,而不是"■匹配级别:设备ID的以&分隔的节数,默认2。"

打个比方(下面的设备是虚构出来的,实际使用也是存在这种情况的):
设备唯一ID:
HDAUDIO\FUNC_01&VEN_111D&DEV_76E0&SUBSYS_103C2109&REV_1003\0000
该设备的硬件ID:
HDAUDIO\FUNC_01&VEN_111D&DEV_76E0&SUBSYS_103C2109&REV_1003
HDAUDIO\FUNC_01&VEN_111D&DEV_76E0&SUBSYS_103C2109
该设备的兼容ID:
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_8C20&VEN_111D&DEV_76E0&REV_1003
HDAUDIO\FUNC_01&VEN_111D&DEV_76E0
SID\ABCD
HDAUDIO\FUNC_01

INF中的信息:
%HdAudioFunctionDriver.Generic.DeviceDesc%  = HdAudModel, ,SID\ABCD


这时候用PECMD内部的匹配算法就匹配不到这个驱动了,所以我就想到把devcon移植过来,比如devcon内部有一些命令Hwids、status、.....这些还是比较实用的。这种需求可能比较极端。

点评

你是说 “硬件ID”和“兼容个ID” 同时同等地参与匹配?是吗?  详情 回复 发表于 2017-6-6 13:28
回复

使用道具 举报

 楼主| 发表于 2017-6-6 13:28:27 | 显示全部楼层
红毛樱木 发表于 2017-6-5 23:17
现在的pecmd匹配驱动,默认截取设备唯一ID的前两段,这种做法不科学。
实际使用中需要更复杂的算法。
...

你是说 “硬件ID”和“兼容个ID” 同时同等地参与匹配?是吗?

点评

是的,整行匹配到了,说明这个inf才有效  详情 回复 发表于 2017-6-6 13:30
回复

使用道具 举报

发表于 2017-6-6 13:30:53 来自手机 | 显示全部楼层
mdyblog 发表于 2017-6-6 13:28
你是说 “硬件ID”和“兼容个ID” 同时同等地参与匹配?是吗?

是的,整行匹配到了,说明这个inf才有效

点评

你前面说 DEVI 目录无效, 是NT5还是NT6啊?什么系统? NT5有可能。 DEVI CAB自己对临时解压驱动文件做了优化处理。 如果是用户制定的文件,不能随便动人家的文件。  详情 回复 发表于 2017-6-6 13:38
“整行匹配到” 这个太严了。实际只有前最多2段有用。后面的一般没用,一般就正对硬件的说明,和驱动没关系。  详情 回复 发表于 2017-6-6 13:35
回复

使用道具 举报

 楼主| 发表于 2017-6-6 13:35:50 | 显示全部楼层
红毛樱木 发表于 2017-6-6 13:30
是的,整行匹配到了,说明这个inf才有效

“整行匹配到” 这个太严了。实际只有前最多2段有用。后面的一般没用,一般就正对硬件的说明,和驱动没关系。

点评

这个我研究了好久。 有整行匹配到的INF才可以。你截取的前两段,如果没有整行匹配,windows也不会去安装这个inf的  详情 回复 发表于 2017-6-6 13:46
回复

使用道具 举报

 楼主| 发表于 2017-6-6 13:38:52 | 显示全部楼层
红毛樱木 发表于 2017-6-6 13:30
是的,整行匹配到了,说明这个inf才有效

你前面说 DEVI 目录无效, 是NT5还是NT6啊?什么系统?
NT5有可能。 DEVI  CAB自己对临时解压驱动文件做了优化处理。 如果是用户制定的文件,不能随便动人家的文件。

点评

DEVI目录无效是nt6无效。nt5下没这么用过,不清楚。  详情 回复 发表于 2017-6-6 13:46
回复

使用道具 举报

发表于 2017-6-6 13:46:09 | 显示全部楼层
mdyblog 发表于 2017-6-6 13:35
“整行匹配到” 这个太严了。实际只有前最多2段有用。后面的一般没用,一般就正对硬件的说明,和驱动没关 ...

这个我研究了好久。
有整行匹配到的INF才可以。你截取的前两段,如果没有整行匹配,windows也不会去安装这个inf的

点评

如果没有整行匹配,windows也不会去安装这个inf的 什么版本的WIndows?NT5不会吧。  详情 回复 发表于 2017-6-6 15:19
回复

使用道具 举报

发表于 2017-6-6 13:46:49 | 显示全部楼层
mdyblog 发表于 2017-6-6 13:38
你前面说 DEVI 目录无效, 是NT5还是NT6啊?什么系统?
NT5有可能。 DEVI  CAB自己对临时解压驱动文件做 ...

DEVI目录无效是nt6无效。nt5下没这么用过,不清楚。
回复

使用道具 举报

 楼主| 发表于 2017-6-6 15:19:13 | 显示全部楼层
本帖最后由 mdyblog 于 2017-6-6 15:20 编辑
红毛樱木 发表于 2017-6-6 13:46
这个我研究了好久。
有整行匹配到的INF才可以。你截取的前两段,如果没有整行匹配,windows也不会去安装 ...


如果没有整行匹配,windows也不会去安装这个inf的
什么版本的WIndows?NT5不会吧。NT6都这样吗?

是不是还有“强制安装”一说?此时不需要“整行匹配”?

点评

“强制安装”本身就不是规范的安装。 可以本机驱动测试下。 改下INF内容试试  详情 回复 发表于 2017-6-6 15:43
回复

使用道具 举报

发表于 2017-6-6 15:43:14 | 显示全部楼层
mdyblog 发表于 2017-6-6 15:19
如果没有整行匹配,windows也不会去安装这个inf的
什么版本的WIndows?NT5不会吧。NT6都这样吗?

“强制安装”本身就不是规范的安装。
可以本机驱动测试下。
改下INF内容试试

点评

作为PE工具,必须把“强制安装”当做“正常安装”。毕竟很多时候,就是用“能用的驱动”驱动起来就可以。 严丝合缝,那的多少驱动包,不适合PE。 完全配合,设一个足够大的级别即可,比如10000, 总没有超过1000  详情 回复 发表于 2017-6-6 16:51
回复

使用道具 举报

 楼主| 发表于 2017-6-6 16:51:25 | 显示全部楼层
红毛樱木 发表于 2017-6-6 15:43
“强制安装”本身就不是规范的安装。
可以本机驱动测试下。
改下INF内容试试

作为PE工具,必须把“强制安装”当做“正常安装”。毕竟很多时候,就是用“能用的驱动”驱动起来就可以。
严丝合缝,那的多少驱动包,不适合PE。

完全配合,设一个足够大的级别即可,比如10000, 总没有超过10000的吧。

点评

这种说法可能“适用”nt5,但在nt6下已经不适用了。  详情 回复 发表于 2017-6-6 16:52
回复

使用道具 举报

发表于 2017-6-6 16:52:56 | 显示全部楼层
mdyblog 发表于 2017-6-6 16:51
作为PE工具,必须把“强制安装”当做“正常安装”。毕竟很多时候,就是用“能用的驱动”驱动起来就可以。 ...

这种说法可能“适用”nt5,但在nt6下已经不适用了。

点评

那就NT6默认设为完整匹配,且可 配合兼容ID  详情 回复 发表于 2017-6-6 17:37
回复

使用道具 举报

发表于 2017-6-6 17:22:47 | 显示全部楼层
本帖最后由 hhh333 于 2017-6-6 17:24 编辑

M大好,该是出国回来了吧。那肯定海龟了。咱们土鳖还在继续玩PE。
DEVI说明里的功能有的用不起如DEVI *.inf /s搜子目录安装功能用不起,再一个就是DEVI每次扫描效率低下的问题。希望有一个强劲的DEVI功能!
1、希望将已知bug修正一下;
2、强化DEVI功能:
①解决每次扫描硬件功能
②为了加快安装效率可不可以引入索引功能:如做一个小工具提取inf中的驱动ID做成索引,安装时DEVI不用再读每个INF文件来比对,直接查找索引。也即有些工作可以在制作驱动包时就做好。
③对安装次数进行自定义,如单设备可以只找到第一个匹配的,双设备可以找两个,ALL可以找所有的。

点评

DEVI说明里的功能有的用不起如DEVI *.inf /s搜子目录安装功能用不起 -------------------- 俺说已经有了, 到时可能的远程到你们的机器上,看看问题到底出在哪儿?  详情 回复 发表于 2017-6-6 17:39
③对安装次数进行自定义,如单设备可以只找到第一个匹配的,双设备可以找两个,ALL可以找所有的。 ------------------------------- 没怎么明白 什么意思?  详情 回复 发表于 2017-6-6 17:36
“引入索引功能” 这个好,的确能大大加快。  详情 回复 发表于 2017-6-6 17:35
回复

使用道具 举报

 楼主| 发表于 2017-6-6 17:35:35 | 显示全部楼层
hhh333 发表于 2017-6-6 17:22
M大好,该是出国回来了吧。那肯定海龟了。咱们土鳖还在继续玩PE。
DEVI说明里的功能有的用不起如DEVI *. ...

“引入索引功能”  这个好,的确能大大加快。

点评

如果弄索引,这个太复杂了,你会头疼的。  详情 回复 发表于 2017-6-6 17:54
回复

使用道具 举报

 楼主| 发表于 2017-6-6 17:36:21 | 显示全部楼层
hhh333 发表于 2017-6-6 17:22
M大好,该是出国回来了吧。那肯定海龟了。咱们土鳖还在继续玩PE。
DEVI说明里的功能有的用不起如DEVI *. ...

③对安装次数进行自定义,如单设备可以只找到第一个匹配的,双设备可以找两个,ALL可以找所有的。
-------------------------------
没怎么明白 什么意思?

点评

可能没表达好,我现在对于一些大型驱动包,如显卡的,使用了WIM来打包的形式,用CAB包解包太费时,由于安装INF子目录搜索不能用,所以用dpinst安装工具,发现这个也有问题,它会对所有的目录都尝试匹配安装。譬如这  详情 回复 发表于 2017-6-6 18:00
回复

使用道具 举报

 楼主| 发表于 2017-6-6 17:37:59 | 显示全部楼层
红毛樱木 发表于 2017-6-6 16:52
这种说法可能“适用”nt5,但在nt6下已经不适用了。

那就NT6默认设为完整匹配,且可 配合兼容ID

点评

恩,或者可以加个参数,让用户选择匹配规则的方式。  详情 回复 发表于 2017-6-6 17:54
回复

使用道具 举报

 楼主| 发表于 2017-6-6 17:39:08 | 显示全部楼层
hhh333 发表于 2017-6-6 17:22
M大好,该是出国回来了吧。那肯定海龟了。咱们土鳖还在继续玩PE。
DEVI说明里的功能有的用不起如DEVI *. ...


DEVI说明里的功能有的用不起如DEVI *.inf /s搜子目录安装功能用不起
--------------------
按说已经有了,也测试过, 到时可能的远程到你们的机器上,看看问题到底出在哪儿?

点评

用指定目录inf安装时,我现在有时是用FORX先搜后装,效率低。  详情 回复 发表于 2017-6-6 17:48
回复

使用道具 举报

发表于 2017-6-6 17:48:44 | 显示全部楼层
mdyblog 发表于 2017-6-6 17:39
DEVI说明里的功能有的用不起如DEVI *.inf /s搜子目录安装功能用不起
--------------------
按说已 ...

用指定目录inf安装时,我现在有时是用FORX先搜后装,效率低。
回复

使用道具 举报

发表于 2017-6-6 17:54:22 | 显示全部楼层
mdyblog 发表于 2017-6-6 17:35
“引入索引功能”  这个好,的确能大大加快。

如果弄索引,这个太复杂了,你会头疼的。
回复

使用道具 举报

发表于 2017-6-6 17:54:57 | 显示全部楼层
mdyblog 发表于 2017-6-6 17:37
那就NT6默认设为完整匹配,且可 配合兼容ID

恩,或者可以加个参数,让用户选择匹配规则的方式。
回复

使用道具 举报

发表于 2017-6-6 18:00:11 | 显示全部楼层
mdyblog 发表于 2017-6-6 17:36
③对安装次数进行自定义,如单设备可以只找到第一个匹配的,双设备可以找两个,ALL可以找所有的。
----- ...

可能没表达好,我现在对于一些大型驱动包,如显卡的,使用了WIM来打包的形式,用CAB包解包太费时,由于安装INF子目录搜索不能用,所以用dpinst安装工具,发现这个也有问题,它会对所有的目录都尝试匹配安装。譬如这个驱动比较靠前,它会很快安装好,但如果靠后则很费时,靠前时虽然安装成功了,但因为还要继续尝试后面的驱动,安装过程也要等一下才能结束。
我就想,理想的状态就是匹配次数可以指定,如显卡最多是双显吧(当然最好是用哪个安装哪个,那就只要第一个匹配就行了),也即最多匹配两次成功就可以了;无线一般是一个吧,找到第一个匹配的,后面就不用找了。

点评

这个次数不科学。逻辑上有严重的缺陷。  详情 回复 发表于 2017-6-6 19:01
回复

使用道具 举报

发表于 2017-6-6 19:01:40 | 显示全部楼层
hhh333 发表于 2017-6-6 18:00
可能没表达好,我现在对于一些大型驱动包,如显卡的,使用了WIM来打包的形式,用CAB包解包太费时,由于安 ...

这个次数不科学。逻辑上有严重的缺陷。
回复

使用道具 举报

发表于 2017-6-7 10:30:11 | 显示全部楼层
按说明,查找DEVI *sub D:\ABC,Display 这个命令应该是查找D:\ABC下的所有的显卡inf文件驱动并安装。当然,这个目前用不了。但想问一下,这个命令的逻辑是什么?即找到匹配的第一个安装,后续还有匹配的是如何处理的?如果双显卡会不会都进行安装?

点评

和直接安装INF一样, 只是遍历所有INF。  详情 回复 发表于 2017-6-7 13:44
inf里面hwid的写法千奇百怪,最蛋疼的是还可以用变量来表示,变量就变量吧,更有甚者只拿中间一小段来用变量表示。当然还有其他奇葩的写法,如果只是用简单的方法来进行id匹配是不行的。 要使pecmd安装驱动的能力  详情 回复 发表于 2017-6-7 11:17
回复

使用道具 举报

发表于 2017-6-7 11:17:09 | 显示全部楼层
hhh333 发表于 2017-6-7 10:30
按说明,查找DEVI *sub D:\ABC,Display 这个命令应该是查找D:\ABC下的所有的显卡inf文件驱动并安装。当然 ...

inf里面hwid的写法千奇百怪,最蛋疼的是还可以用变量来表示,变量就变量吧,更有甚者只拿中间一小段来用变量表示。当然还有其他奇葩的写法,如果只是用简单的方法来进行id匹配是不行的。

要使pecmd安装驱动的能力更强,就得找一堆特殊的inf来搞测试
回复

使用道具 举报

 楼主| 发表于 2017-6-7 13:44:23 | 显示全部楼层
本帖最后由 mdyblog 于 2017-6-7 13:55 编辑
hhh333 发表于 2017-6-7 10:30
按说明,查找DEVI *sub D:\ABC,Display 这个命令应该是查找D:\ABC下的所有的显卡inf文件驱动并安装。当然 ...


和直接安装INF一样, 只是遍历所有INF。
Display 则先只列出Display的设备,其它就丢掉。


---------------------
DEVI *sub D:\ABC,Display  用不了。
直接指定INF可以吧。


--------------------
DEVI *sub D:\ABC
可以吗?

PE中,“,Display”最好不用,类别最好不用。PE刚起来时,设备不正常(,尤其是显卡),系统的设备类别信息可能不正确,这样根据错误的信息过滤,就不对了。

点评

1、直接指定一个INF可以安装; 2、带上*sub搜子目录无论是否指定类别都不能安装; 3、用FORX找再一个一个装,可以安装,但效率低,还要检查是否安装成功,排在前面的快;  详情 回复 发表于 2017-6-7 15:08
回复

使用道具 举报

发表于 2017-6-7 15:08:39 | 显示全部楼层
本帖最后由 hhh333 于 2017-6-7 15:11 编辑
mdyblog 发表于 2017-6-7 13:44
和直接安装INF一样, 只是遍历所有INF。
Display 则先只列出Display的设备,其它就丢掉。


1、直接指定一个INF可以安装;
2、带上*sub搜子目录无论是否指定类别都不能安装;
3、用FORX找再一个一个装,可以安装,但效率低,还要检查是否安装成功,排在前面的快;

感觉这个与CAB安装应该差不多的,怎么不行?想不通

点评

是的,比CAB简单。 可能哪儿出了小问题。有时间改改就好了。  详情 回复 发表于 2017-6-8 10:07
回复

使用道具 举报

 楼主| 发表于 2017-6-8 10:07:35 | 显示全部楼层
hhh333 发表于 2017-6-7 15:08
1、直接指定一个INF可以安装;
2、带上*sub搜子目录无论是否指定类别都不能安装;
3、用FORX找再一个 ...

是的,比CAB简单。
可能哪儿出了小问题。有时间改改就好了。
回复

使用道具 举报

 楼主| 发表于 2017-6-8 23:21:17 | 显示全部楼层
请问谁有KIndle设备?
麻烦看看 Kindle Store 有没有 这本书:FLAT THEORY OF RELATIVITY

显示上架了
kindleStore.png



https://www.amazon.com 就是搜不到!!!!
Amazon-Search.png
没有这本书啊????????????

Kindle Store  就是 https://www.amazon.com网上商店吧,amazon不会多个书店吧。
回复

使用道具 举报

发表于 2017-6-9 01:54:24 | 显示全部楼层
老大,我要添加鼠标右键“用记事本打开”的快捷方式,但使用命令【REGI $HKCR\*\shell\用"记事本"打开\command\=Notepad.exe "%1"】注册后那个字符【%1】总是被替换了,不知道是我记错使用方法了,还是PECMD.EXE有BUG,我用1201.88.5.75版测试的,请指教!!!

点评

再加一个百分号试试  详情 回复 发表于 2017-6-9 11:02
回复

使用道具 举报

发表于 2017-6-9 11:02:24 来自手机 | 显示全部楼层
free68 发表于 2017-6-9 01:54
老大,我要添加鼠标右键“用记事本打开”的快捷方式,但使用命令【REGI $HKCR\*\shell\用"记事本"打开\comm ...

再加一个百分号试试
回复

使用道具 举报

发表于 2017-6-9 15:08:00 | 显示全部楼层
本帖最后由 free68 于 2017-6-14 15:09 编辑

命令【REGI HKCR\*\shell\用"记事本"打开\command\=Notepad.exe "%1"】的结果是【Notepad.exe "REGI"】
命令【REGI HKCR\*\shell\用"记事本"打开\command\=Notepad.exe %"%1"】的结果是【Notepad.exe 1"】
命令【REGI HKCR\*\shell\用"记事本"打开\command\=Notepad.exe "%%1"】的结果是【Notepad.exe "%1"】

最后一句是正确的,是我没搞清楚命令用法,谢谢红大了!!

点评

命令【REGI HKCR\*\shell\用"记事本"打开\command\=Notepad.exe "%%1"】的结果是【Notepad.exe "%1"】 对的。 PECMD 先%格式翻译。 %%翻译为%。"%%1"翻译为%1 另外建议文件关联中建议用 "%%L" 代替"%%1": 【R  详情 回复 发表于 2017-6-14 18:04
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-18 06:01

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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