![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-15 02:11 |
共 47,813 主题排行 / 349,902 发帖 / 今日 4 篇 / 48,257 会员排行 |
| 其它操作系统综合讨论区 » [原创]借助DevCon纯脚本备份驱动,兼容驱动精灵(2008-01-17) |
| 可打印版本 82,482 / 72 |
| 第31楼 fastslz | 发表于 2007-12-18 15:08 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
关于重复备份能处理掉,但这样做效率低处理时间长,虽然是重复但备份的驱动文件很少出现重复的情况。
WHQL数字签名呢我是读取oem*.inf提取相应的.cat来弥补devcon的不足,而且最后把oem*.inf和oem*.cat改名成inf内容里相同的文件名,这样才能保证再次更新时WHQL数字签名是有效的,而驱动精灵只提取了cat文件没有把.inf改名成对应的文件名造成再次更新时WHQL数字签名是无效的,也就是驱动精灵最大的不足。 比如我的创新声卡inf内容是 ; ECTIVA Audio 5.1 Series INF file 驱动安装后文件是以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" |
|
| 第32楼 pfox | 发表于 2007-12-18 17:10 |
| 银牌会员 发帖 446 积分 1,451 | |
Originally posted by fastslz at 2007-12-18 02:27 PM: 该驱动确实是使用setup.exe进行安装的,既然程序不存在问题那就暂时不管他了,回头我试一试驱动精灵看看备份是否正确。 看来是这个驱动比较特殊,驱动精灵备份的时候也无法备份该文件。 [ Last edited by pfox on 2007-12-18 at 05:19 PM ] |
|
| 第33楼 qq43142691 | 发表于 2008-01-07 08:58 |
| 中级用户 发帖 152 积分 326 | |
|
你们都是火星来了哇~~~~~
|
|
| 第34楼 regvip2008 | 发表于 2008-01-16 18:18 |
| 初级用户 发帖 87 积分 187 | |
|
这些问题太深奥了,我是看不懂!不过,还是顶 一下!
|
|
| 第35楼 dooomer | 发表于 2008-01-18 12:10 |
| 初级用户 发帖 52 积分 109 | |
|
好东东,先顶一个。
|
|
| 第36楼 ttj36 | 发表于 2008-02-07 09:25 |
| 初级用户 发帖 37 积分 80 | |
|
不错,老哥,这个批处太好用了,不过,基本里,好象打映机的备份不下来,
是不是还要加上USBPRINT这个,请大哥指点 [ Last edited by ttj36 on 2008-2-7 at 09:39 AM ] |
|
| 第37楼 fastslz | 发表于 2008-02-08 21:34 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by ttj36 at 2008-2-7 09:25: for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do ( ...... |
|
| 第38楼 ttj36 | 发表于 2008-02-09 12:49 |
| 初级用户 发帖 37 积分 80 | |
|
还是备份不下来,怎么回事,呀,是不是并口打印机驱动 Parport
USB打印机驱动 Usbprint 那怎么不好备份呢 刚刚看了一下,还要把打印机插上才能备份下来,怎么回事,应该可以备份的呀, [ Last edited by ttj36 on 2008-2-9 at 01:10 PM ] |
|
| 第39楼 fastslz | 发表于 2008-02-09 20:03 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
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" |
|
| 第40楼 ttj36 | 发表于 2008-02-09 20:08 |
| 初级用户 发帖 37 积分 80 | |
|
我试试看,谢谢,
|
|
| 第41楼 ttj36 | 发表于 2008-02-09 20:19 |
| 初级用户 发帖 37 积分 80 | |
|
我刚刚试过了改成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个驱动, 到,这样对不对, |
|
| 第42楼 fastslz | 发表于 2008-02-09 20:29 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by ttj36 at 2008-2-9 20:19: 看下Drivers\HardwareID.log对应打印机驱动的那一部分 |
|
| 第43楼 ttj36 | 发表于 2008-02-09 20:31 |
| 初级用户 发帖 37 积分 80 | |
|
看了上面写,"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 ] |
|
| 第44楼 fastslz | 发表于 2008-02-09 20:52 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
确实比较奇怪,按道理for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do (
这样应该能正确识别打印机的,要不你再试试 for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do ( 或者 for %%a in (PCI PCIIDE USB IDE DISPLAY USBPRINT) do ( 看看这2种兼容性更大,如果在不能正确识别,要增加代码了 [ Last edited by fastslz on 2008-2-9 at 08:55 PM ] |
|
| 第45楼 ttj36 | 发表于 2008-02-09 21:03 |
| 初级用户 发帖 37 积分 80 | |
|
第一个还是不行,
用第二,出是出来个不过好象不对,而且出错, "1 matching device(s) found." 找不到文件 - monitor.inf 十在不行,就算了,把打映机插上就行了,就是搞不懂不插上打映机,就不好备份, [ Last edited by ttj36 on 2008-2-9 at 09:13 PM ] |
|
| 上一页 1 2 3 4 5 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |