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

[文本处理] 批处理怎样从多个文件中查找不同字符串并导出一个文本?

[复制链接]
发表于 2010-8-25 15:57:13 | 显示全部楼层 |阅读模式
例如我现在有3个TXT日志文件在同一个LOG文件目录下:
1234.txt内容:xxx=1234 ccc=9877
5678.txt内容:xxx=5678 ccc=9866
9101.txt内容:xxx=9101 ccc=9855

数据对应关系:1234和9811是一组,5678和9866是一组,9101和9855是一组

批处理怎么能用findstr 在log目录下搜“1234 9877”和“5678 9866”,在那个目录下,正确找到输出文件名,导出到TXT文件!匹配不到,则提示no

导出的TXT格式如下:
1234.TXT
*******************OK
5678.TXT
********************NO
9101.TXT
*********************OK


多谢。。。有点乱,看不明白请提示,谢谢!!!
 楼主| 发表于 2010-8-25 16:02:46 | 显示全部楼层
目前我是这么做的。但是只能一次处理一台!!!求批量出来方法,thx

@echo off
set sn="1234 9877"
for %%i in (*.TXT) do (type %%i |findstr "%sn%" >nul && echo %%~nxi)
发表于 2010-8-25 19:18:05 | 显示全部楼层
findstr  /m  "1234 9877 5678 9866" *.txt
后面自己处理
发表于 2010-8-25 20:49:06 | 显示全部楼层
如果要一组一组匹配的话,3楼的不能满足要求,比如xxx=1234 ccc=9855,但是如果日志里得数据是匹配的话,可以分成两个findstr。比如:
  1. findstr /s /m "1234" *.txt >>1234_9877.txt
  2. findstr /s /m "5678" *.txt >>5678_9866.txt
复制代码

如果出现我说的情况的话,就需要更精确的字符串来查找,比如
  1. findstr /s /m /c:"=1234 ccc=9877" *.txt >>123_9877.txt
复制代码
 楼主| 发表于 2010-8-26 17:10:04 | 显示全部楼层
多谢。。。如果上面2位兄弟的脚本,如果我有100个日志要处理,岂不是先要创建100多个脚本,那就不划算了吧? 能不能通过设置变量的方式?
发表于 2010-8-26 20:33:10 | 显示全部楼层
100个日志,设置变量的方式也需要100个一一对应的关系表。那时候一般用for来解析了,不过最重要的是要给出你所需要的全部对应关系
发表于 2010-8-27 15:04:47 | 显示全部楼层
你可以把要搜索的字符串写在一个txt里,然后写一个批处理,每读一行,查一次。
 楼主| 发表于 2010-8-27 15:10:25 | 显示全部楼层
6楼的兄弟。标量对应关系到时好弄。。EXCEL 粘贴到UE里面保存txt就OK了
7楼的兄弟能否帮写一个出来,多谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 20:37 , Processed in 0.023066 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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