[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理如何提取文本指定相关内容?

需要这样一个文本处理:
要根据姓名找出对应的ID.(注ID是无顺序的)
a.txt内容如下.
ID:1
姓名:极度

ID:2
姓名:沉沦

ID:3
姓名:极度沉沦

我现在知道一个叫极度沉沦的人.我想得到他的ID....怎么办....
现在有段代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2 delims=:" %%i in (a.txt) do (
  3. set second=!first!&set first=%%i
  4. if defined second (set !first!=!second!&set first=)
  5. )
  6. set/p name=请输入姓名:
  7. call echo %name%的Id=!%name%!
  8. pause
复制代码


我感觉是变量间的转换,理不清,帮忙解释清楚...希望可以有其他解决方法!!!.......

[ 本帖最后由 woxingwoshu007 于 2009-4-19 16:21 编辑 ]

解决问题的代码你已经有了,至于说理不清嘛,只能靠你自己,这个别人没法帮你。
不过代码可以简化,可能有助于你的理解
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2 delims=:" %%i in (a.txt) do (
  3.    set second=!first!&set first=%%i
  4.    if defined second set %%i=!second!
  5. )
  6. set/p name=请输入姓名:
  7. echo %name%的Id=!%name%!
  8. pause
复制代码

[ 本帖最后由 随风 于 2009-4-19 16:40 编辑 ]
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. set input=&set /p input=请输入姓名:
  3. set /a m=0
  4. for /f "tokens=2 delims=:" %%a in (a.txt) do (
  5.   set /a m+=1,n=m-1
  6.   call set _%%m%%=%%a
  7.   if "%%a"=="%input%" (
  8.     call call echo."%input%"的ID是:%%%%_%%n%%%%%%
  9.     echo.&pause&goto :eof
  10. ))
  11. echo.对不起,找不到"%input%"&echo.&pause
复制代码

TOP

返回列表