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

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

本帖最后由 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 编辑 ]

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

TOP

  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
复制代码

TOP

  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
复制代码

TOP

别用批处理行么?

我们的目的是要解决问题,不是挑战难度……

TOP

批处理同时实现两个条件是好难啊,不知那位高手愿意挑战!!!单实现条件1的批处理该如何编写??

TOP

这个高度智能哦,需要设置很多变量,不如找个人用C++弄一个结构体来给你查询
努力学习,努力挣分

TOP

返回列表