中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 05:34
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]关于FOR命令的一些问题请求帮助 查看 859 回复 4
楼 主 [已解决]关于FOR命令的一些问题请求帮助 发表于 2007-07-05 05:25 ·  美国 加利福尼亚州 橙 亨廷顿比奇
新手上路
积分 18
发帖 7
注册 2007-07-02 14:15
19年会员
UID 92936
性别 男
状态 离线
我找一个批处理文件内容如下
Set flag=
dmi.exe /f

:check
If Not Exist DMIINFO.TXT Goto check
chcp 936>nul
For /f "tokens=2 delims==" %%i In ('findstr /bi "Product_Name" DMIINFO.TXT') do set type=%%i
Echo 你的型号是:%type% 系统正在分配驱动
ping -n 6 %computername%>nul
Set type=%type:*-=%
For /l %%i In (1,1,9) Do If "%type:~1,1%"=="%%i" Set type=%type:~0,2%
For /f "delims=" %%i In ('dir /a-d /b "*%type:~0,3%*.txt" 2^>nul') do (
Set flag=1
For /f "delims=" %%j In ('dir /ad /b^|findstr /ivx /g:"%%i" 2^>nul') do rd /q /s "%%j" 2>nul
)
Del /f /q *.txt 2>nul
If Not defined flag (
For /d %%i In (*) Do rd /q /s "%%i" 2>nul
Echo 无法找到符合%type%笔记本的驱动
Echo 此窗口20秒后自动退出
ping -n 20 %computername%>nul
)
Del "%~0"
pause

我不是很清楚 For /f "tokens=2 delims==" %%i In ('findstr /bi "Product_Name" DMIINFO.TXT') do set type=%%i
这一行里的意思。
如果我想修改。从INFO.txt里取得一个信息怎么修改
INFO.txt的内容是如下我用红色表表示我要取得的内容
哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
BIOS Info Tool v1.3, Copyright(c) 2004 by Serge Galkin (StarGaz0r)
Win9x/Win2k/XP version e-mail: stargaz0r@nm.ru
屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯

?ROM BIOS by American Megatrends Inc., 02/05/07
BIOS ID String: ??
Version: ? release date: //

?DMI.BaseBoardInformation:
Manufacturer: Sony Corporation
Product: VAIO
Version: N/A
Serial Number: N/A

?DMI.SystemInformation:
Manufacturer: Sony Corporation
Product Name: VGN-FE770G
Version: C3LMMYGJ
Serial Number: 28247830-3012552

?DMI.BIOSInformation:
Vendor Name: Phoenix Technologies LTD
BIOS Version: R0200J3
BIOS Starting Address Segment: E6B3h
BIOS Release Date: 02/05/2007
BIOS ROM Size: 1024 KB

?Supported features:










Last edited by clear700 on 2007-7-5 at 03:10 PM ]
2 发表于 2007-07-05 09:01 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
多看看老帖子,对照着for /?学习。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2007-07-05 12:59 ·  美国 加利福尼亚州 橙 亨廷顿比奇
新手上路
积分 18
发帖 7
注册 2007-07-02 14:15
19年会员
UID 92936
性别 男
状态 离线
看的头都晕了
我把这行改了怎么就不工作呢?
For /f "tokens=2 delims==" %%i In ('findstr /bi "Product Name" DMIINFO.TXT') do set type=%%i


Product Name这个原先有_ 下滑线 我改成没有就不正常工作了?还有我要提取的东西和先前写这个DAT的人的东西不太一样
他先前的是DMIINFO.TXT是如下


Manufacturer_Name(Type1,Offset04h) = Compal
Product_Name(Type1,Offset05h) = CL51
Version(Type1,Offset06h) =
Serial_Number(Type1,Offset07h) =
4 发表于 2007-07-05 13:25 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
@echo off
for /f "delims=: tokens=2" %%a in ('findstr /ic:"Product Name" procude.txt') do echo 要提取的信息:%%a
pause
5 发表于 2007-07-05 15:22 ·  美国 加利福尼亚州 橙 亨廷顿比奇
新手上路
积分 18
发帖 7
注册 2007-07-02 14:15
19年会员
UID 92936
性别 男
状态 离线
已经搞定了非常感谢~
论坛跳转: