标题: [求助]如何用BAT自动搜索TXT文档内的多个特定字符?
[打印本页]
作者: flybird2020
时间: 2007-7-25 16:30
标题: [求助]如何用BAT自动搜索TXT文档内的多个特定字符?
每隔一段时间我就要备份一次日志
并要在日志中搜索是否有特定字样的字符<如某个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 ]
作者: slore
时间: 2007-7-25 20:59
作者: wudixin96
时间: 2007-7-25 21:12
灌水灌水,论坛什么时候开的?
真是不知道没论坛的日子,不知道怎么过的。
作者: Runas
时间: 2007-7-25 21:21
这样?
@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
作者: wudixin96
时间: 2007-7-25 21:25
这个点还是不要替换为{好啊,
反正findstr的正则也支持.的啊。
作者: Runas
时间: 2007-7-25 21:44
可是,他要求的IP是类似192.168.1.1的格式,其中的"."不是和findstr的表达式一样了吗?不替换的话貌似批处理会将IP格式"."当成findstr的通配符表达式来处理了。
我是菜鸟,只想到这种笨方法。^_^!
[ Last edited by Runas on 2007-7-25 at 09:48 PM ]
作者: wudixin96
时间: 2007-7-25 21:54
在正则中.是表示匹配任何字符。
但是是可以转义的。\.就可以转义出来了
而且匹配的是数字,就不要用.来匹配了。
[0-9]
[ Last edited by wudixin96 on 2007-7-25 at 09:56 PM ]
作者: Runas
时间: 2007-7-25 22:35
\.转义可以理解,但是不用.来匹配的话,难道IP用[0-9]\.[0-9]\.[0-9]\.[0-9]这样来表示吗?
作者: wudixin96
时间: 2007-7-25 22:38
用.的话,岂不是aaa.bbb.vvv.rrr也匹配?
作者: Runas
时间: 2007-7-25 22:45
这个我也明白,但是我不太晓得用findstr的正则,兄能否按照LZ的要求,写一份范例供我们这些小菜参考一下?
作者: flybird2020
时间: 2007-7-26 13:46
E。。。
我是要在多个IP中去查少量IP
比如在1000个IP中查找我需要找的50个IP
如果这个日志里有,就告诉我哪个有就好了
作者: jckjuc
时间: 2007-7-26 23:04
看到这些高手在讨论,真是学到不少东东啊。
真是感谢让我成为论坛的一分子啊。