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

[文本处理] 【已解决】求助批处理查找文本内特定的内容以此来运行指定的模块

本帖最后由 大地 于 2021-10-13 13:08 编辑

求助:查找文本内特定的内容以此来运行指定的模块
文本123.txt 其内有很多行,每行有多字,现在要查找李梅的人名,查到了只要有这个李梅名字就执行1.bat命令,查不到执行 2.bat,
李梅的位置不确定,可能在任意行,在行的任意位置,每个名字之间用逗号(,)分开,但问题是,文本内有多个跟李梅类似的名字,如张李梅,李梅芳,李梅珍,有点甚至名字连在一起,没分开(忘记分开了),如李梅健王林.....他们其实是不同的人 ,不是真正的李梅,这个如何写,请大神指点一下,谢谢。(网上自查了一下没搞定)

首先你自己是如何判断真李梅假李梅的?

TOP

本帖最后由 大地 于 2021-10-12 13:42 编辑

回复 2# qixiaobin0715
只有李梅两个字,
前面逗号  后面逗号,
或者 前面空  后面空,
或者前面:   后面同样是:
或者前面:   后面空

例:
:李梅

(看到这个肯定是李梅了)
这就是我要找的
.
:李梅远
这个李梅远不是我要找的

TOP

”空“是什么?
列举的全吗?

TOP

本帖最后由 大地 于 2021-10-12 13:52 编辑

回复 4# qixiaobin0715
后面没有文字  是空的 或者换行了
例:
王李梅:李梅荣:李梅芬:李梅西
李梅兰:李梅:李梅荣:李梅花
王李梅:李梅覆:李梅铁:李梅王王
王李梅:李梅覆:李梅铁:李梅王王:李梅
李梅习......
...........................................

上面其中的第二行中的第二个李梅是我要找的
上面其中的第四行中的最后一个是我要找的

TOP

本帖最后由 qixiaobin0715 于 2021-10-12 15:01 编辑

按照你在3楼列举的4种情况(可自己再加),大概应当这样:
  1. .......
  2. set Names=,李梅, ^李梅$ :李梅: :李梅$
  3. findstr /r "%Names%" 123.txt>nul
  4. if %errorlevel%==0 goto :a
  5. if %errorlevel%==1 goto :b
  6. ......
复制代码

TOP

回复 6# qixiaobin0715


好的  谢谢了 等会儿试一下

TOP

在findstr命令最后加上”>nul“可屏蔽显示123.txt的内容。

TOP

按你所说最少应当有以下情况:
  1. ......,李梅,......
  2. ......:李梅:......
  3. 李梅:......
  4. 李梅,......
  5. ......,李梅
  6. ......:李梅
  7. 李梅
复制代码

TOP

也可以这样,将下面文本存为a.txt文件,6楼代码第2行删掉,第3行替换为:
  1. findstr /rg:a.txt 123.txt>nul
复制代码
a.txt
  1. ,李梅,
  2. :李梅:
  3. ^李梅:
  4. ^李梅,
  5. ,李梅$
  6. :李梅$
  7. ^李梅$
复制代码

TOP

本帖最后由 大地 于 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

TOP

回复 11# 大地
不要修改6楼第2行,不要手打,直接复制过去。你修改的不对。

TOP

回复 12# qixiaobin0715

试了  OK了 谢谢  
另外再烦请指点一下  如果上下三个字三个字对齐,在李梅两字加个空格,即 李 梅  仍定性为李梅  该如何修改一下,谢谢

TOP

回复 13# 大地
不要看多了一个空格,会带来很多麻烦,并且可选项太多,最好采用10楼的办法:
a.txt
  1. ,李梅,
  2. :李梅:
  3. ^李梅:
  4. ^李梅,
  5. ,李梅$
  6. :李梅$
  7. ^李梅$
  8. ,李 梅,
  9. :李 梅:
  10. ^李 梅:
  11. ^李 梅,
  12. ,李 梅$
  13. :李 梅$
  14. ^李 梅$
复制代码

TOP

返回列表