标题: [文本处理] 【已解决】求助批处理查找文本内特定的内容以此来运行指定的模块 [打印本页]
作者: 大地 时间: 2021-10-12 13:20 标题: 【已解决】求助批处理查找文本内特定的内容以此来运行指定的模块
本帖最后由 大地 于 2021-10-13 13:08 编辑
求助:查找文本内特定的内容以此来运行指定的模块
文本123.txt 其内有很多行,每行有多字,现在要查找李梅的人名,查到了只要有这个李梅名字就执行1.bat命令,查不到执行 2.bat,
李梅的位置不确定,可能在任意行,在行的任意位置,每个名字之间用逗号(,)分开,但问题是,文本内有多个跟李梅类似的名字,如张李梅,李梅芳,李梅珍,有点甚至名字连在一起,没分开(忘记分开了),如李梅健王林.....他们其实是不同的人 ,不是真正的李梅,这个如何写,请大神指点一下,谢谢。(网上自查了一下没搞定)
作者: qixiaobin0715 时间: 2021-10-12 13:29
首先你自己是如何判断真李梅假李梅的?
作者: 大地 时间: 2021-10-12 13:37
本帖最后由 大地 于 2021-10-12 13:42 编辑
回复 2# qixiaobin0715
只有李梅两个字,
前面逗号 后面逗号,
或者 前面空 后面空,
或者前面: 后面同样是:
或者前面: 后面空
例:
:李梅
(看到这个肯定是李梅了)
这就是我要找的
.
:李梅远
这个李梅远不是我要找的
作者: qixiaobin0715 时间: 2021-10-12 13:42
”空“是什么?
列举的全吗?
作者: 大地 时间: 2021-10-12 13:43
本帖最后由 大地 于 2021-10-12 13:52 编辑
回复 4# qixiaobin0715
后面没有文字 是空的 或者换行了
例:
王李梅:李梅荣:李梅芬:李梅西
李梅兰:李梅:李梅荣:李梅花
王李梅:李梅覆:李梅铁:李梅王王
王李梅:李梅覆:李梅铁:李梅王王:李梅
李梅习......
...........................................
上面其中的第二行中的第二个李梅是我要找的
上面其中的第四行中的最后一个是我要找的
作者: qixiaobin0715 时间: 2021-10-12 14:03
本帖最后由 qixiaobin0715 于 2021-10-12 15:01 编辑
按照你在3楼列举的4种情况(可自己再加),大概应当这样:- .......
- set Names=,李梅, ^李梅$ :李梅: :李梅$
- findstr /r "%Names%" 123.txt>nul
- if %errorlevel%==0 goto :a
- if %errorlevel%==1 goto :b
- ......
复制代码
作者: 大地 时间: 2021-10-12 14:39
回复 6# qixiaobin0715
好的 谢谢了 等会儿试一下
作者: qixiaobin0715 时间: 2021-10-12 15:03
在findstr命令最后加上”>nul“可屏蔽显示123.txt的内容。
作者: qixiaobin0715 时间: 2021-10-12 15:32
按你所说最少应当有以下情况:- ......,李梅,......
- ......:李梅:......
- 李梅:......
- 李梅,......
- ......,李梅
- ......:李梅
- 李梅
复制代码
作者: qixiaobin0715 时间: 2021-10-12 16:25
也可以这样,将下面文本存为a.txt文件,6楼代码第2行删掉,第3行替换为:- findstr /rg:a.txt 123.txt>nul
复制代码
a.txt- ,李梅,
- :李梅:
- ^李梅:
- ^李梅,
- ,李梅$
- :李梅$
- ^李梅$
复制代码
作者: 大地 时间: 2021-10-12 20:02
本帖最后由 大地 于 2021-10-12 20:37 编辑
回复 10# qixiaobin0715
试了一下 没搞清楚
其实符号太多,我可以用替换法统一成一个符号
这样简单些
例:
:李梅 这个是正确的( 需 要的)转 :A
:李梅芬 这个是错误的(不需要的)转 :B
如何设代码?
(先从简单的理解起)
。
试了一下 好像不行
123.txt内为:李梅芳
set Names=:李梅
findstr /r "%Names%" 123.txt>nul
if %errorlevel%==0 goto :A
if %errorlevel%==1 goto :B
他总是返还:A
123.txt改为:李梅 也是返还:A
作者: qixiaobin0715 时间: 2021-10-13 08:39
回复 11# 大地
不要修改6楼第2行,不要手打,直接复制过去。你修改的不对。
作者: 大地 时间: 2021-10-13 14:13
回复 12# qixiaobin0715
试了 OK了 谢谢
另外再烦请指点一下 如果上下三个字三个字对齐,在李梅两字加个空格,即 李 梅 仍定性为李梅 该如何修改一下,谢谢
作者: qixiaobin0715 时间: 2021-10-13 14:33
回复 13# 大地
不要看多了一个空格,会带来很多麻烦,并且可选项太多,最好采用10楼的办法:
a.txt- ,李梅,
- :李梅:
- ^李梅:
- ^李梅,
- ,李梅$
- :李梅$
- ^李梅$
- ,李 梅,
- :李 梅:
- ^李 梅:
- ^李 梅,
- ,李 梅$
- :李 梅$
- ^李 梅$
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |