Board logo

标题: 如果获得文本中指定的数值? [打印本页]

作者: pykacha     时间: 2008-5-9 15:32    标题: 如果获得文本中指定的数值?
我在文本mingdan.txt中有如下内容
code name
12 ali
13 sam
14 jim
在批处理中让用户输入code的内容,即“12”,程序能从文本中找出相应的name对应的内容,即ali。并将其赋值给程序中的%name1%变量?
先多谢各位高手。

作者: slore     时间: 2008-5-9 15:43
@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

作者: bat-zw     时间: 2008-5-9 18:40    标题: 请参考:
请楼主参考我这个贴子吧,相信你会有点收获的:http://www.cn-dos.net/forum/viewthread.php?tid=39662&fpage=1&highlight=%2Bzw19750516

作者: pykacha     时间: 2008-5-10 00:52
完全符合要求,只是看不懂。
谢谢各位前辈的热心指教,echo !C%code%!这里的!怎么理解?

作者: slore     时间: 2008-5-10 01:25
set c14=XXX
set c15=xxx

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

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

搜索变量延迟扩展

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

作者: huahua0919     时间: 2008-5-11 13:37
if not defined C%%i goto start

作者: pusofalse     时间: 2008-5-11 13:47
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了

作者: pykacha     时间: 2008-5-12 09:01
多谢各位前辈指导啊!
会的人稍作修改就行了,不会的人大改特改也不行:)

作者: woo88     时间: 2008-5-25 21:53
支持