标题: 批处理如何提取文本指定相关内容? [打印本页]
作者: woxingwoshu007 时间: 2009-4-19 16:02 标题: 批处理如何提取文本指定相关内容?
需要这样一个文本处理:
要根据姓名找出对应的ID.(注ID是无顺序的)
a.txt内容如下.
ID:1
姓名:极度
ID:2
姓名:沉沦
ID:3
姓名:极度沉沦
我现在知道一个叫极度沉沦的人.我想得到他的ID....怎么办....
现在有段代码如下:
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2 delims=:" %%i in (a.txt) do (
- set second=!first!&set first=%%i
- if defined second (set !first!=!second!&set first=)
- )
- set/p name=请输入姓名:
- call echo %name%的Id=!%name%!
- pause
复制代码
我感觉是变量间的转换,理不清,帮忙解释清楚...希望可以有其他解决方法!!!.......
[ 本帖最后由 woxingwoshu007 于 2009-4-19 16:21 编辑 ]
作者: 随风 时间: 2009-4-19 16:36
解决问题的代码你已经有了,至于说理不清嘛,只能靠你自己,这个别人没法帮你。
不过代码可以简化,可能有助于你的理解- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2 delims=:" %%i in (a.txt) do (
- set second=!first!&set first=%%i
- if defined second set %%i=!second!
- )
- set/p name=请输入姓名:
- echo %name%的Id=!%name%!
- pause
复制代码
[ 本帖最后由 随风 于 2009-4-19 16:40 编辑 ]
作者: GodInHell 时间: 2009-4-19 16:46
- @echo off
- set input=&set /p input=请输入姓名:
- set /a m=0
- for /f "tokens=2 delims=:" %%a in (a.txt) do (
- set /a m+=1,n=m-1
- call set _%%m%%=%%a
- if "%%a"=="%input%" (
- call call echo."%input%"的ID是:%%%%_%%n%%%%%%
- echo.&pause&goto :eof
- ))
- echo.对不起,找不到"%input%"&echo.&pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |