中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 09:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何用BAT自动搜索TXT文档内的多个特定字符? 查看 1,199 回复 11
楼 主 [求助]如何用BAT自动搜索TXT文档内的多个特定字符? 发表于 2007-07-25 16:30 ·  中国 湖南 长沙 电信
初级用户
★★
积分 103
发帖 52
注册 2007-04-13 05:20
19年会员
UID 84975
性别 男
状态 离线
每隔一段时间我就要备份一次日志
并要在日志中搜索是否有特定字样的字符<如某个IP:222.222.222.222>
手动要查的话太多了,不方便
能不能写个BAT
一次性查出来是否在此次日志中含有我要搜索的字符呢?
谢谢高手
小菜太菜了

PS:补充一下
我是要在多个IP集合中查找一定数量的IP
比如在1000个IP中找我指定的50个IP是否存在

[ Last edited by flybird2020 on 2007-7-26 at 01:47 PM ]
2 发表于 2007-07-25 20:59 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
findstr命令
3 发表于 2007-07-25 21:12 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
灌水灌水,论坛什么时候开的?

真是不知道没论坛的日子,不知道怎么过的。
4 发表于 2007-07-25 21:21 ·  中国 广东 广州 电信
初级用户
积分 74
发帖 38
注册 2007-07-25 13:41
19年会员
UID 94003
性别 女
状态 离线
这样?

@echo off & setlocal ENABLEDELAYEDEXPANSION
cd /d "c:\日志备份"
::存放日志文件的目录
for /f "delims=" %%i in ('dir /a-d /b *.log') do (
for /f "delims=" %%a in ('type "%%i"') do (
set str=%%a
echo !str:.={! | findstr .*{.*{.*{.*>nul && echo %%i:!str!
)
)
pause
5 发表于 2007-07-25 21:25 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
这个点还是不要替换为{好啊,

反正findstr的正则也支持.的啊。
6 发表于 2007-07-25 21:44 ·  中国 广东 广州 电信
初级用户
积分 74
发帖 38
注册 2007-07-25 13:41
19年会员
UID 94003
性别 女
状态 离线
可是,他要求的IP是类似192.168.1.1的格式,其中的"."不是和findstr的表达式一样了吗?不替换的话貌似批处理会将IP格式"."当成findstr的通配符表达式来处理了。

我是菜鸟,只想到这种笨方法。^_^!

[ Last edited by Runas on 2007-7-25 at 09:48 PM ]
7 发表于 2007-07-25 21:54 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
在正则中.是表示匹配任何字符。

但是是可以转义的。\.就可以转义出来了

而且匹配的是数字,就不要用.来匹配了。


[ Last edited by wudixin96 on 2007-7-25 at 09:56 PM ]
8 发表于 2007-07-25 22:35 ·  中国 广东 广州 电信
初级用户
积分 74
发帖 38
注册 2007-07-25 13:41
19年会员
UID 94003
性别 女
状态 离线
\.转义可以理解,但是不用.来匹配的话,难道IP用[0-9]\.[0-9]\.[0-9]\.[0-9]这样来表示吗?
9 发表于 2007-07-25 22:38 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
用.的话,岂不是aaa.bbb.vvv.rrr也匹配?
10 发表于 2007-07-25 22:45 ·  中国 广东 广州 电信
初级用户
积分 74
发帖 38
注册 2007-07-25 13:41
19年会员
UID 94003
性别 女
状态 离线
这个我也明白,但是我不太晓得用findstr的正则,兄能否按照LZ的要求,写一份范例供我们这些小菜参考一下?
11 发表于 2007-07-26 13:46 ·  中国 湖南 长沙 电信
初级用户
★★
积分 103
发帖 52
注册 2007-04-13 05:20
19年会员
UID 84975
性别 男
状态 离线
E。。。
我是要在多个IP中去查少量IP
比如在1000个IP中查找我需要找的50个IP
如果这个日志里有,就告诉我哪个有就好了
12 发表于 2007-07-26 23:04 ·  中国 北京 科技网
初级用户
白小痴
积分 48
发帖 23
注册 2006-09-16 01:45
19年会员
UID 62709
性别 男
状态 离线
看到这些高手在讨论,真是学到不少东东啊。
真是感谢让我成为论坛的一分子啊。
QQ : 251938794 www.pc5156.cn 電腦無憂 <<---欢迎进入个人主页
论坛跳转: