![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 10:34 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]如何判断笔记本的型号并分配驱动 |
| 可打印版本 2,224 / 21 |
| 第1楼 xiaofking | 发表于 2007-06-09 00:52 |
| 初级用户 发帖 31 积分 72 | |
|
[已解决]如何判断笔记本的型号并分配驱动 我是多个vaio本本群的管理员,因为vaio本本的特殊性,在驱动方面有很多难题,我们群就是无偿提供vaio驱动和本本解决方案的个人性质的群,因为现在的本本都预装了vista,很多人在改装XP的时候遇到了问题,我们手头上有解决的方案,所以想做一个ghost xp for vaio给网上的朋友使用,让大家可以一键就装好所有驱动和软件
在驱动封装的时候我遇到了难题,研究了十多天了,我想在驱动提前解压时候用批处理做一个判断,判断本本的型号并分配驱动,我的批处理思路如下 先提前解压所有驱动至C:\drivers文件夹(有所有本本的驱动)(这一步由封装工具实现,不在批处理内容里),批处理内容如下 1...用systeminfo命令输出一个1.txt的文件,里面有本本的型号,以VGN开头,比如VGN-FE48C(此字符串前后均有空格) 2...用findstr查找这个输出的1.txt,找到VGN-开头的字符串,得到VGN-后面的字符串,比如FE48C 3...将此FE48C的字符串告诉这个批处理,批处理能自动删除drivers文件夹中除FE48C这个型号以外的所有驱动,于是此时drivers文件夹里只剩下FE48C的驱动 只要实现以上后面的我就知道怎么做了,问了很多封装的高手都没能有一个好的解决方案,这已经是我能想出来的最现实的解决型号判断和驱动分配的办法了 我们群加起来一共有一两千人,建立一年多,从来没有收过网上用vaio本本的朋友一分一毫,以后也只会做无偿服务,群里确实没有这方面的技术人才,我自己本身没什么技术底子,就凭一股热情,既然决定要做个xp for vaio就一定要做出来,纯粹是为了帮助更多的人,也希望高手能帮帮我,我的联系QQ是48191335,希望能提供技术帮助的人联系我(注明:DOS联盟)...有任何疑问请回贴..谢谢 [ Last edited by bjsh on 2007-7-31 at 03:10 PM ] |
|
| 第2楼 terse | 发表于 2007-06-09 01:44 |
| 银牌会员 发帖 946 积分 2,404 | |
|
最好发个输出的1.txt内容
|
|
| 第3楼 xiaofking | 发表于 2007-06-09 13:41 |
| 初级用户 发帖 31 积分 72 | |
|
systeminfo >1.txt (没有使用systeminfo的任何参数)
主机名: vincent OS 名称: Microsoft Windows XP Professional OS 版本: 5.1.2600 Service Pack 2 Build 2600 OS 制造商: Microsoft Corporation OS 配置: 独立工作站 OS 构件类型: Uniprocessor Free 产品 ID: 76481-640-2449187-23845 初始安装日期: 2006-9-12, 20:00:19 系统启动时间: 暂缺 系统制造商: Sony Corporation 系统型号: VGN-TX15C_W 系统类型: X86-based PC 处理器: 安装了 1 个处理器。 : x86 Family 6 Model 13 Stepping 8 GenuineIntel ~997 Mhz BIOS 版本: Sony - 20050805 [ Last edited by xiaofking on 2007-6-9 at 04:44 PM ] |
|
| 第4楼 terse | 发表于 2007-06-09 14:46 |
| 银牌会员 发帖 946 积分 2,404 | |
|
VGN-TX15C_W系统类型
是不是要TX15C?_W系统类型 这里的_是不是一定有? |
|
| 第5楼 xiaofking | 发表于 2007-06-09 15:35 |
| 初级用户 发帖 31 积分 72 | |
|
没错 _ 是一定存在的,VGN也是一定存在的,VGN_后面的就是型号,型号的后面是空格,VGN-TX15C_W的前面是"系统型号: ",后面就直接换行了
也可以用systeminfo的参数使C_W后面不换行直接产生空格 [ Last edited by xiaofking on 2007-6-9 at 03:40 PM ] |
|
| 第6楼 xiaofking | 发表于 2007-06-09 15:36 |
| 初级用户 发帖 31 积分 72 | |
|
我看了很多贴子,好像这个对我的需求还是有一定帮助的,但我确实看不懂,希望给你看看有点用
如何读取文本内<a>至<a/> 之间的字符串? @echo off & SETLOCAL EnableDelayedExpansion set _TxtFile=1.txt set _OutFile=2.txt set _GetLine=init set _GetChar=init :main for /f "Tokens=* " %%i in (%_TxtFile%) do ( set _GetLine=%%i call :READINFILE echo ^<!_OutLine!^> ) goto :END :READINFILE set ReadFlag=true for /l %%i in (0,1,255) do ( set _GetChar=!_GetLine:~%%i,1! if "!_GetChar!"=="" goto :EOF if "!_GetChar!"=="<" set ReadFlag=false if "!ReadFlag!"=="true" set _OutLine=!_OutLine!!_GetChar! if "!_GetChar!"==">" set ReadFlag=true ) goto :EOF :END pause |
|
| 第7楼 xiaofking | 发表于 2007-06-09 15:49 |
| 初级用户 发帖 31 积分 72 | |
|
我用systeminfo /fo table>1.txt输出了一个table格式的文本,里面是这样子的,没有换行的
Sony Corporation VGN-TX15C_W X86-based PC 上面三个是在同一行的,sony本本自然肯定有Sony Corporation这个字符串,我想是不是可以这样想,在1.txt中查找Sony Corporation,当找到后向前进15个字符(Sony Corporation后面有15个空格),然后从第16个字符开始获取,也就是从"V"开始一直向后获取字符,当再次碰到"空格符"的时候便Pause,这样就能获得整个型号的字符串了,这种想法可以吗? |
|
| 第8楼 terse | 发表于 2007-06-09 15:57 |
| 银牌会员 发帖 946 积分 2,404 | |
|
你想得到VGN-TX15C_W 里面的TX15C_W 还是得到整个VGN-TX15C_W 还是TX15C?
|
|
| 第9楼 terse | 发表于 2007-06-09 16:11 |
| 银牌会员 发帖 946 积分 2,404 | |
|
for /f "tokens=1,2,3 delims=-_ " %%i in ('findstr TX"VGN" 1.txt') do (
echo %%k ) 根据3楼 提取的TX15C |
|
| 第10楼 xiaofking | 发表于 2007-06-09 16:40 |
| 初级用户 发帖 31 积分 72 | |
|
最好是得到整个VGN-TX15C_W,否则的话至少要得到TX15C_W
[ Last edited by xiaofking on 2007-6-9 at 04:45 PM ] |
|
| 第11楼 terse | 发表于 2007-06-09 16:53 |
| 银牌会员 发帖 946 积分 2,404 | |
|
7楼的字符 用下面:
for /f "tokens=1,2,3, delims= " %%i in ('findstr "VGN" 1.txt') do ( echo %%k ) |
|
| 第12楼 wudixin96 | 发表于 2007-06-09 16:58 |
| 银牌会员 发帖 931 积分 1,928 | |
| 第13楼 xiaofking | 发表于 2007-06-09 17:04 |
| 初级用户 发帖 31 积分 72 | |
|
12楼的wudixin96非常正确...直接输出了VGN-TX15C_W
现在只剩下问题3了.. 3...将此VGN-TX15C_W的字符串告诉这个批处理,批处理能自动删除drivers文件夹中除VGN-TX15C_W这个型号以外的所有驱动,于是此时drivers文件夹里只剩下VGN-TX15C_W的驱动 谢谢terse和wudixin96,帮到底好吗... [ Last edited by xiaofking on 2007-6-9 at 05:08 PM ] |
|
| 第14楼 terse | 发表于 2007-06-09 17:10 |
| 银牌会员 发帖 946 积分 2,404 | |
|
驱动全名后缀贴上
|
|
| 第15楼 xiaofking | 发表于 2007-06-09 17:29 |
| 初级用户 发帖 31 积分 72 | |
|
C:\dirvers文件夹里有"NV1" "NV2" "Realtek1" "Realtek2" "modem1" "modem2"......等等文件夹,文件夹内均是inf安装形式的,不是setup安装的exe(驱动类型可能会有十几种,包括读卡器指纹等等...)
首先定义TX15C_W所需的驱动是"NV1" "Realtek2" "modem2".....(在批处理的开头可能要先定义所有的型号,即定义某型号分别需要哪些驱动) 从1.txt中得到TX15C_W这个型号后批处理自动删除此型号以外的所有驱动,也就是说除了"NV1" "Realtek2" "modem2"....以外的全部删除,这样drivers文件夹里就只剩下跟TX15C_W有关的驱动了... 这样就行了 或者我的驱动文件夹也可以是如下情况 (其中TX15,FE38,SZ32都是机器型号) 文件夹:NV_TX15_SZ32 文件夹:NV_FE38_FE48 文件夹:Modem_TX15_FE38_SZ32 文件夹:Realtek_TX15_TX25 文件夹:Realtek_FE38_SZ32 [ Last edited by xiaofking on 2007-6-9 at 05:57 PM ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |