中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如果获得文本中指定的数值?
作者:
标题: 如果获得文本中指定的数值? 上一主题 | 下一主题
pykacha
初级用户





积分 156
发帖 73
注册 2008-5-9
状态 离线
『楼 主』:  如果获得文本中指定的数值?

我在文本mingdan.txt中有如下内容
code         name
12            ali
13            sam
14            jim
在批处理中让用户输入code的内容,即“12”,程序能从文本中找出相应的name对应的内容,即ali。并将其赋值给程序中的%name1%变量?
先多谢各位高手。

2008-5-9 15:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

@echo off&setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2" %%i in (mingdan.txt) do Set C%%i=%%j
set /p code=输入编号:
echo !C%code%!
pause>nul

2008-5-9 15:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  请参考:

请楼主参考我这个贴子吧,相信你会有点收获的:http://www.cn-dos.net/forum/view ... light=%2Bzw19750516



批处理之家新域名:www.bathome.net
2008-5-9 18:40
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pykacha
初级用户





积分 156
发帖 73
注册 2008-5-9
状态 离线
『第 4 楼』:  

完全符合要求,只是看不懂。
谢谢各位前辈的热心指教,echo !C%code%!这里的!怎么理解?

2008-5-10 00:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

set c14=XXX
set c15=xxx

echo !c14!  (14就是你输入的编号)

2008-5-10 01:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by pykacha at 2008-5-10 12:52 AM:
完全符合要求,只是看不懂。
谢谢各位前辈的热心指教,echo !C%code%!这里的!怎么理解?

搜索变量延迟扩展

2008-5-10 01:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pykacha
初级用户





积分 156
发帖 73
注册 2008-5-9
状态 离线
『第 7 楼』:  

谢谢!!C%code%!也弄明白了。
我想再加多一个判断,如果在列表中查找不到所输入的编号,即输入不存在的编号时,就要求重新输入。
请问要怎样实现这个判断?

2008-5-11 13:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 8 楼』:  

if not defined C%%i goto start

2008-5-11 13:37
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by pykacha at 2008-5-11 01:31 PM:
谢谢!!C%code%!也弄明白了。
我想再加多一个判断,如果在列表中查找不到所输入的编号,即输入不存在的编号时,就要求重新输入。
请问要怎样实现这个判断?

@echo off&setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2" %%i in (mingdan.txt) do Set C%%i=%%j
:1
set /p code=输入编号:
if defined c%code% (echo !C%code%!) else echo 编号不存在。
pause>nul
goto 1
把slore前辈的代码稍作修改就OK了

2008-5-11 13:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pykacha
初级用户





积分 156
发帖 73
注册 2008-5-9
状态 离线
『第 10 楼』:  

多谢各位前辈指导啊!
会的人稍作修改就行了,不会的人大改特改也不行:)

2008-5-12 09:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
woo88
初级用户





积分 188
发帖 96
注册 2008-3-11
状态 离线
『第 11 楼』:  

支持

2008-5-25 21:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: