Board logo

标题: [文本处理] 批处理如何根据输入的字符串操作文本中含有该字符串的行并截取/提取特定内容 [打印本页]

作者: keshun    时间: 2010-8-26 13:29     标题: 批处理如何根据输入的字符串操作文本中含有该字符串的行并截取/提取特定内容

本帖最后由 pcl_test 于 2017-3-22 09:43 编辑

请问高手,批处理显示指定文字对应的内容,该如何编写??


条件1.在批处理文件里输入“2265”或“小明”,对应查找1.txt文本内容,并在批处理中显示:
“2265小明2010-09-25”

条件2.在批处理文件里输入“100925”,对应查找1.txt文本内容,并在批处理中显示:
“2105小李2010-09-25”
“2265小明2010-09-25”


注:1.txt实际是三行文字,每行多段文字分隔为单个空格

1.txt文本内容如下
user=2105 bindlan=none cn=小李 uplimit=4-8 active=yes modules=pppoe passwd=2105 expire_since=2010-09-25 desc=- maxlogin=1 downlimit=50-180 bindmac=00-e0-a0-01-59-e5
user=2265 bindlan=none cn=小明 uplimit=3-4 active=yes modules=pppoe passwd=2265 expire_since=2010-09-25 desc=- maxlogin=1 downlimit=20-30 bindmac=00-90-27-93-30-3c
user=2174 bindlan=none cn=小刚 uplimit=3-4 active=yes modules=pppoe passwd=2174 expire_since=2010-09-10 desc=- maxlogin=1 downlimit=20-30 bindmac=00-21-70-ca-f3-19

[ 本帖最后由 keshun 于 2010-8-26 17:15 编辑 ]
作者: sgaizxt001    时间: 2010-8-26 20:40

这个高度智能哦,需要设置很多变量,不如找个人用C++弄一个结构体来给你查询
作者: keshun    时间: 2010-8-27 00:06

批处理同时实现两个条件是好难啊,不知那位高手愿意挑战!!!单实现条件1的批处理该如何编写??
作者: sleepinglord    时间: 2010-8-27 14:59

别用批处理行么?

我们的目的是要解决问题,不是挑战难度……
作者: lvsehuaxue    时间: 2011-5-29 11:01

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p v=
  3. for /f "tokens=1-23 delims== " %%a in (a.txt) do (
  4.     if %v% equ %%b echo %%b%%f%%p
  5.     if %v% equ %%f echo %%b%%f%%p
  6.     set "p=%%p"
  7.     set "p=!p:-=!"
  8.     if %v% equ !p:~-6! echo %%b%%f%%p
  9.     )
  10. pause>nul
复制代码

作者: CrLf    时间: 2011-5-29 11:11

  1. @echo off
  2. set /p find=关键词
  3. echo %find%|findstr /x "...... ........"&&set find=%find:~,-4%-%find:~-4,2%-%find:~-2%
  4. findstr /l "%find%" 1.txt
  5. pause
复制代码

作者: batman    时间: 2011-5-29 12:47

很简单的问题,处理方案也多样,为什么都说不用批处理?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2