标题: [文本处理] 批处理如何查找出文本中含有指定字符串的行? [打印本页]
作者: 1005593010 时间: 2014-6-16 07:09 标题: 批处理如何查找出文本中含有指定字符串的行?
本帖最后由 pcl_test 于 2016-11-15 17:55 编辑
各位亲爱的朋友,你们好:
我手里有一个文本文档,内容如下:- 31-M-01A 第一站 500-LC-04-A00-M1 22 1S2 江苏
- 31-M-01B 第二站 500-LC-04-A00-M2 22 1S2 江苏
复制代码
如何使用批处理编写一个查询系统:
一、实现如下:输入里面任意一个都能调用里面的某一行显示在批处理中。- 您查询的信息如下:
- 站号:31-M-01A
- 站位: 第一站
- 代号:500-LC-04-A00-M1
- 公里:22
- 状态:1S2
- 城市:江苏
复制代码
二、另:如果有相同的,则显示多条信息:比如查询31-M-01 则显示A B的信息
三、可否设置不区分大小写?无论大写小写都能输出
四、如果文档中没有。返回:没有记录!
五、写成循环,就是输入数字1后按回车返回原始状态,可以重新查询。输入数字0退出系统。上面加上这两个提示就是按数字1继续查询,按数字0退出系统! 谢谢各位亲爱的朋友!
作者: 522235677 时间: 2014-6-16 11:38
- @echo off
- :1
- set /p str=输入要查询的数据:
- echo 您查询的信息如下:
- for /f "tokens=1,2,3,4,5,6 delims= " %%a in ('findstr /i "%str%" 新建文本文档.txt') do (set a=1
- echo.
- echo 站号:%%a
- echo 站位: %%b
- echo 代号:%%c
- echo 公里:%%d
- echo 状态:%%e
- echo 城市:%%f
-
- )
- if %a% neq 1 echo 没有记录!&set a=
- set /p c=输入1继续查询,输入0退出:
- if %c% equ 1 cls&goto 1
- if %c% equ 0 exit
- 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://bathome.net./) |
Powered by Discuz! 7.2 |