中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » [原创]借助DevCon纯脚本备份驱动,兼容驱动精灵(2008-01-17)
« [1] [2] [3] [4] [5] »
作者:
标题: [原创]借助DevCon纯脚本备份驱动,兼容驱动精灵(2008-01-17) 上一主题 | 下一主题
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 31 楼』:  

关于重复备份能处理掉,但这样做效率低处理时间长,虽然是重复但备份的驱动文件很少出现重复的情况。
WHQL数字签名呢我是读取oem*.inf提取相应的.cat来弥补devcon的不足,而且最后把oem*.inf和oem*.cat改名成inf内容里相同的文件名,这样才能保证再次更新时WHQL数字签名是有效的,而驱动精灵只提取了cat文件没有把.inf改名成对应的文件名造成再次更新时WHQL数字签名是无效的,也就是驱动精灵最大的不足。
比如我的创新声卡inf内容是

  Quote:
; ECTIVA Audio 5.1 Series INF file
;
; Feature  : Enhanced (WDM)
; Language : English
;
; Date     : 12 Feb 2004
; Revision : 1.00.003
;
; Copyright 1995-2004, Creative Technology Ltd.

[Version]
Signature="$CHICAGO$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%MfgName%
CatalogFile=ECTIVA.cat
DriverVer=02/12/2004,5.12.01.004

[Manufacturer]
%MfgName%=ECTIVA

驱动安装后文件是以oem2.inf和oem2.cat保存在系统目录,备份好不改名成ECTIVA.inf和ECTIVA.cat,再次更新驱动时WHQL数字签名是无效的,驱动精灵只能做到oem2.inf和ECTIVA.cat

改名代码
for /f "tokens=1* delims== " %%k in ('type "%inf%"^|find /i ".cat"') do set oemname=%%~nl
if defined oemname for /f "delims=*" %%k in ('dir /s /b /a-d "%SystemRoot%\system32\CatRoot\%infname%.cat" 2^>nul') do set catfile=%%~k
if not defined catfile for /f "delims=*" %%k in ('dir /s /b /a-d "%SystemRoot%\%oemname%.cat" 2^>nul') do set catfile=%%k
if defined catfile (
           set infname=%oemname%
           xcopy /h /r /y "%catfile%" "drivers\%class%\%name%\*.*">nul 2>>%log%
           if errorlevel 0 color 0e&&echo  含WHQL数字签名
           attrib -s -h -r "drivers\%class%\%name%\%infname%.*">nul
           move /y "drivers\%class%\%name%\%infname%.inf" "drivers\%class%\%name%\%oemname%.inf">nul 2>nul
           move /y "drivers\%class%\%name%\%infname%.cat" "drivers\%class%\%name%\%oemname%.cat">nul 2>nul
)
for /f "delims= " %%i in ('devcon hwids %ID%^|sed -n "/Hardware ID's:/{n;p;}"') do echo "%infname%.inf"****"%%~i">>"drivers\HardwareID.log"



第一高手    第二高手

2007-12-18 15:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pfox
银牌会员




积分 1451
发帖 446
注册 2002-10-20
状态 离线
『第 32 楼』:  



  Quote:
Originally posted by fastslz at 2007-12-18 02:27 PM:


"drivers\PCI\Marvell Yukon Gigabit Ethernet 10_100_1000Base-T Adapter, Copper RJ-45\"文件名是合格的,这个驱动确实比较特殊,文件路径不对应说明该驱动也是未 ...

该驱动确实是使用setup.exe进行安装的,既然程序不存在问题那就暂时不管他了,回头我试一试驱动精灵看看备份是否正确。

看来是这个驱动比较特殊,驱动精灵备份的时候也无法备份该文件。

[ Last edited by pfox on 2007-12-18 at 05:19 PM ]




我的下载空间
2007-12-18 17:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『第 33 楼』:  

你们都是火星来了哇~~~~~

2008-1-7 08:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
regvip2008
初级用户





积分 187
发帖 87
注册 2007-10-23
状态 离线
『第 34 楼』:  

这些问题太深奥了,我是看不懂!不过,还是顶 一下!

2008-1-16 18:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dooomer
初级用户





积分 109
发帖 52
注册 2006-1-3
状态 离线
『第 35 楼』:  

好东东,先顶一个。

2008-1-18 12:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 36 楼』:  

不错,老哥,这个批处太好用了,不过,基本里,好象打映机的备份不下来,
是不是还要加上USBPRINT这个,请大哥指点

[ Last edited by ttj36 on 2008-2-7 at 09:39 AM ]

2008-2-7 09:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 37 楼』:  



  Quote:
Originally posted by ttj36 at 2008-2-7 09:25:
不错,老哥,这个批处太好用了,不过,基本里,好象打映机的备份不下来,
是不是还要加上USBPRINT这个,请大哥指点

[ Last edited by ttj36 on 2008-2-7 at 09:39 AM ]

for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do (
......




第一高手    第二高手

2008-2-8 21:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 38 楼』:  

还是备份不下来,怎么回事,呀,是不是并口打印机驱动 Parport
USB打印机驱动 Usbprint    那怎么不好备份呢
刚刚看了一下,还要把打印机插上才能备份下来,怎么回事,应该可以备份的呀,

[ Last edited by ttj36 on 2008-2-9 at 01:10 PM ]

2008-2-9 12:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 39 楼』:  

for %%a in (PCI PCIIDE USB IDE DISPLAY) do (
        for /f "tokens=1* delims=: " %%b in ('devcon find %%a\*^|find "\"') do call :startcopy "@%%b" "%%c"
)

替换成
for /f "tokens=1* delims=: " %%b in ('devcon find *^|find "\"') do call :startcopy "@%%b" "%%c"
或范围更大点
for /f "tokens=1* delims=: " %%b in ('devcon findall *^|find "\"') do call :startcopy "@%%b" "%%c"



第一高手    第二高手

2008-2-9 20:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 40 楼』:  

我试试看,谢谢,

2008-2-9 20:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 41 楼』:  

我刚刚试过了改成for /f "tokens=1* delims=: " %%b in ('devcon find *^|find "\"') do echo "%%b"****"%%  驱动太多了,
我又改成了for /f "tokens=1* delims=: " %%b in ('devcon findall %%a\*^|find "\"') do echo "%%b"****"%%这样,备份下来多出了,4个驱动,
到,这样对不对,

2008-2-9 20:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 42 楼』:  



  Quote:
Originally posted by ttj36 at 2008-2-9 20:19:
我刚刚试过了改成for /f "tokens=1* delims=: " %%b in ('devcon find *^|find "\"') do echo "%%b"****"%%  驱动太多了,
我又改成了for /f "tokens ...

看下Drivers\HardwareID.log对应打印机驱动的那一部分



第一高手    第二高手

2008-2-9 20:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 43 楼』:  

看了上面写,"hpf3500p.inf"****"USBPRINT\hpdeskjet_35007052"
for /f "tokens=1* delims=: " %%b in ('devcon findall %%a\*^|find "\"') do echo "%%b"****"%%看来只能这么搞,不知道对不对,

[ Last edited by ttj36 on 2008-2-9 at 08:37 PM ]

2008-2-9 20:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 44 楼』:  

确实比较奇怪,按道理for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do (
这样应该能正确识别打印机的,要不你再试试

  Quote:
for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do (
    for /f "tokens=1* delims=: " %%b in ('devcon find *%%a*^|find "\"') do echo "%%b"****"%%c">>"%Temp:"=%.\Devinfo.slz"
)

或者

  Quote:
for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do (
    for /f "tokens=1* delims=: " %%b in ('devcon find @%%a*^|find "\"') do echo "%%b"****"%%c">>"%Temp:"=%.\Devinfo.slz"
)

看看这2种兼容性更大,如果在不能正确识别,要增加代码了

[ Last edited by fastslz on 2008-2-9 at 08:55 PM ]



第一高手    第二高手

2008-2-9 20:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 45 楼』:  

第一个还是不行,
用第二,出是出来个不过好象不对,而且出错,

"1 matching device(s) found."
找不到文件 - monitor.inf

十在不行,就算了,把打映机插上就行了,就是搞不懂不插上打映机,就不好备份,

[ Last edited by ttj36 on 2008-2-9 at 09:13 PM ]

2008-2-9 21:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: