标题: 求个cmd或vbs:提取*.log里带“wap”的……
[打印本页]
作者: wkl17
时间: 2010-12-16 22:16
标题: 求个cmd或vbs:提取*.log里带“wap”的……
求个cmd或vbs:提取*.log里带“wap”的行,把不带“wap”的整行给删除掉
自己有网站在朋友的2K3/IIS6 的VPS上。平时我帮他管理的VPS。
自己有个站,带WAP访问功能,但不能用51.la等进行统计,所以只好开启IIS日志。
现在想通过CMD或VBS,配合正则表达式,提取带“wap”的整行内容,保存后再运行bak2eml.bat这个批处理。
有一点需注意:(由于日志可能在被操作,无法直接修改,因此)首先将d:\www\site\w3clog\*.log 复制到d:\temp\下后再操作。
我说的“提取”,其实反过来操作,就是将*.log里不带“wap”的行给删除掉,并删除空行,这样可能会更方便些。。
如果还能再将带“wap”的行数给统计出来(比如总的有1280行,)然后再用
smtp@163.com password 这个邮箱自动发一封邮件“今天总共有1280个Wap页面被浏览了”到
myeml@163.com 。
希望懂的朋友帮下忙,谢谢!
作者: Hanyeguxing
时间: 2010-12-16 22:46
@echo off&setlocal enabledelayedexpansion
::设置输出目录
set m=d:\temp
for /r "d:\www\site\w3clog" %%a (*.log) do (
findstr "wap" "%%a">"%m%\%%~nxa"
for /f "delims=:" %%b in ('findstr /n .* "%m%\%%~nxa"') do set a=%%b
set/a n+=!a!
)
echo 总行数:%n%
pause
Last edited by Hanyeguxing on 2010-12-16 at 22:48 ]
作者: DXSX
时间: 2010-12-18 23:04
运行 find /? 就知道该怎么做了
find /i "wap" x.log 找出包含 wap 的行
find /i /v "wap" x.log 找出不包含 Wap 的行
find /c "wap" x.log 显示包含 wap 行的行数