Board logo

标题: [文本处理] 批处理如何查找出文本中含有指定字符串的行? [打印本页]

作者: 1005593010    时间: 2014-6-16 07:09     标题: 批处理如何查找出文本中含有指定字符串的行?

本帖最后由 pcl_test 于 2016-11-15 17:55 编辑

各位亲爱的朋友,你们好:
我手里有一个文本文档,内容如下:
  1. 31-M-01A  第一站  500-LC-04-A00-M1  22  1S2 江苏  
  2. 31-M-01B  第二站  500-LC-04-A00-M2  22  1S2 江苏  
复制代码
如何使用批处理编写一个查询系统:
一、实现如下:输入里面任意一个都能调用里面的某一行显示在批处理中。
  1. 您查询的信息如下:
  2. 站号:31-M-01A
  3. 站位: 第一站
  4. 代号:500-LC-04-A00-M1
  5. 公里:22
  6. 状态:1S2
  7. 城市:江苏
复制代码
二、另:如果有相同的,则显示多条信息:比如查询31-M-01  则显示A B的信息
三、可否设置不区分大小写?无论大写小写都能输出
四、如果文档中没有。返回:没有记录!
五、写成循环,就是输入数字1后按回车返回原始状态,可以重新查询。输入数字0退出系统。上面加上这两个提示就是按数字1继续查询,按数字0退出系统! 谢谢各位亲爱的朋友!
作者: 522235677    时间: 2014-6-16 11:38

  1. @echo off
  2. :1
  3. set /p str=输入要查询的数据:
  4. echo 您查询的信息如下:
  5. for /f "tokens=1,2,3,4,5,6 delims= " %%a in ('findstr /i "%str%" 新建文本文档.txt') do (set a=1
  6. echo.
  7. echo 站号:%%a
  8. echo 站位: %%b
  9. echo 代号:%%c
  10. echo 公里:%%d
  11. echo 状态:%%e
  12. echo 城市:%%f
  13. )
  14. if %a% neq 1 echo 没有记录!&set a=
  15. set /p c=输入1继续查询,输入0退出:
  16. if %c% equ 1 cls&goto 1
  17. if %c% equ 0 exit
  18. pause
复制代码

作者: 1005593010    时间: 2014-6-16 19:35

回复 2# 522235677


    谢谢您的帮助,请问这个最多可以加到多少条啊?
作者: 522235677    时间: 2014-6-16 20:05

回复 3# 1005593010


    几千几万应该没问题吧
作者: 1005593010    时间: 2014-6-16 22:25

回复 4# 522235677


    谢谢!我还想问下 咱们定义是从a开始的 那到了z之后呢?
还有我把bat转换成exe之后,电脑总是报毒被杀掉怎么解决? 有没有完美的解决方案?谢谢!
作者: Batcher    时间: 2014-6-16 23:21

回复 5# 1005593010


    最好不要转exe




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