中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 05:12
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求个cmd或vbs:提取*.log里带“wap”的…… 查看 1,191 回复 2
楼 主 求个cmd或vbs:提取*.log里带“wap”的…… 发表于 2010-12-16 22:16 ·  中国 福建 泉州 电信
新手上路
积分 13
发帖 8
注册 2008-03-07 15:56
18年会员
UID 112298
性别 男
状态 离线
求个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

希望懂的朋友帮下忙,谢谢!
2 发表于 2010-12-16 22:46 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@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 ]
3 发表于 2010-12-18 23:04 ·  中国 辽宁 葫芦岛 联通
中级用户
★★
积分 247
发帖 147
注册 2009-04-09 20:52
17年会员
UID 142531
性别 男
状态 离线
运行 find /? 就知道该怎么做了
find /i "wap" x.log 找出包含 wap 的行
find /i /v "wap" x.log 找出不包含 Wap 的行
find /c "wap" x.log 显示包含 wap 行的行数
论坛跳转: