中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-23 22:05
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如果获得文本中指定的数值? 查看 921 回复 10
楼 主 如果获得文本中指定的数值? 发表于 2008-05-09 15:32 ·  中国 广东 广州 番禺区 电信
初级用户
★★
积分 156
发帖 73
注册 2008-05-09 10:40
18年会员
UID 118210
性别 男
状态 离线
我在文本mingdan.txt中有如下内容
code name
12 ali
13 sam
14 jim
在批处理中让用户输入code的内容,即“12”,程序能从文本中找出相应的name对应的内容,即ali。并将其赋值给程序中的%name1%变量?
先多谢各位高手。
2 发表于 2008-05-09 15:43 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@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
3 请参考: 发表于 2008-05-09 18:40 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
请楼主参考我这个贴子吧,相信你会有点收获的:http://www.cn-dos.net/forum/viewthread.php?tid=39662&fpage=1&highlight=%2Bzw19750516
批处理之家新域名:www.bathome.net
4 发表于 2008-05-10 00:52 ·  中国 广东 广州 番禺区 电信
初级用户
★★
积分 156
发帖 73
注册 2008-05-09 10:40
18年会员
UID 118210
性别 男
状态 离线
完全符合要求,只是看不懂。
谢谢各位前辈的热心指教,echo !C%code%!这里的!怎么理解?
5 发表于 2008-05-10 01:25 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
set c14=XXX
set c15=xxx

echo !c14! (14就是你输入的编号)
6 发表于 2008-05-10 01:28 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by pykacha at 2008-5-10 12:52 AM:
完全符合要求,只是看不懂。
谢谢各位前辈的热心指教,echo !C%code%!这里的!怎么理解?

搜索变量延迟扩展
7 发表于 2008-05-11 13:31 ·  中国 广东 广州 移动
初级用户
★★
积分 156
发帖 73
注册 2008-05-09 10:40
18年会员
UID 118210
性别 男
状态 离线
谢谢!!C%code%!也弄明白了。
我想再加多一个判断,如果在列表中查找不到所输入的编号,即输入不存在的编号时,就要求重新输入。
请问要怎样实现这个判断?
8 发表于 2008-05-11 13:37 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
if not defined C%%i goto start
9 发表于 2008-05-11 13:47 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
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了
10 发表于 2008-05-12 09:01 ·  中国 广东 广州 番禺区 电信
初级用户
★★
积分 156
发帖 73
注册 2008-05-09 10:40
18年会员
UID 118210
性别 男
状态 离线
多谢各位前辈指导啊!
会的人稍作修改就行了,不会的人大改特改也不行:)
11 发表于 2008-05-25 21:53 ·  中国 广东 深圳 宝安区 电信
初级用户
★★
积分 188
发帖 96
注册 2008-03-11 00:59
18年会员
UID 112592
性别 男
状态 离线
支持
论坛跳转: