找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30811|回复: 5

[文本处理] 批处理如何查找出文本中含有指定字符串的行?

[复制链接]
发表于 2014-6-16 07:09:50 | 显示全部楼层 |阅读模式
本帖最后由 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退出系统! 谢谢各位亲爱的朋友!
发表于 2014-6-16 11:38:18 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2014-6-16 19:35:38 | 显示全部楼层
回复 2# 522235677


    谢谢您的帮助,请问这个最多可以加到多少条啊?
发表于 2014-6-16 20:05:16 | 显示全部楼层
回复 3# 1005593010


    几千几万应该没问题吧
 楼主| 发表于 2014-6-16 22:25:40 | 显示全部楼层
回复 4# 522235677


    谢谢!我还想问下 咱们定义是从a开始的 那到了z之后呢?
还有我把bat转换成exe之后,电脑总是报毒被杀掉怎么解决? 有没有完美的解决方案?谢谢!
发表于 2014-6-16 23:21:34 | 显示全部楼层
回复 5# 1005593010


    最好不要转exe
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:52 , Processed in 0.017768 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表