批处理统计文本内多个关键词个数并输出
http://zhidao.baidu.com/question/213882067.html?an=0&si=1这个地方的我试了很牛的但是我跟他的需求有点不一样能帮我一...
http://zhidao.baidu.com/question/213882067.html?an=0&si=1 这个地方的我试了 很牛的 但是我跟他的需求有点不一样 能帮我一下吗
set ff=d:\a.txt 这里是数据库的日志文件路径 能带上今天的变量吗
然后需要把 搜索到的关键词 输出到文本文档
只有14分了 送上10分 不要嫌少 谢谢 展开
set ff=d:\a.txt 这里是数据库的日志文件路径 能带上今天的变量吗
然后需要把 搜索到的关键词 输出到文本文档
只有14分了 送上10分 不要嫌少 谢谢 展开
展开全部
不很确定具体要求,先问了一下的没见回复就不等了。假定要统计文本是含当天日期的日志路径下,比如 d:\数据库\日志\20111212\a.txt
统计后输出到批处理文件所在路径b.txt
自己据实际情况去修改:
@echo off&setlocal enabledelayedexpansion
set ff=%date:~,10%
set ff=d:\数据库\日志\%ff:-=%\a.txt
set str=关键词1 关键词2 关键...
echo 正在统计&echo;
(for %%a in (%str%)do (
set n%%a=0&set/p= %%a : <nul>con
for /f "delims=" %%b in ('findstr "%%a" "%ff%"')do (
set h=%%b
call :yky %%a)
echo !n%%a!>con
echo %%a : !n%%a!
))>b.txt
echo/&pause&exit
:yky
set/a n%1+=1
set h=!h:*%1=!
if defined h if not "!h:*%1=!"=="!h!" goto :yky
统计后输出到批处理文件所在路径b.txt
自己据实际情况去修改:
@echo off&setlocal enabledelayedexpansion
set ff=%date:~,10%
set ff=d:\数据库\日志\%ff:-=%\a.txt
set str=关键词1 关键词2 关键...
echo 正在统计&echo;
(for %%a in (%str%)do (
set n%%a=0&set/p= %%a : <nul>con
for /f "delims=" %%b in ('findstr "%%a" "%ff%"')do (
set h=%%b
call :yky %%a)
echo !n%%a!>con
echo %%a : !n%%a!
))>b.txt
echo/&pause&exit
:yky
set/a n%1+=1
set h=!h:*%1=!
if defined h if not "!h:*%1=!"=="!h!" goto :yky
追问
还有两个问题请教
1: 搜关键词 "[测试] 游客 修改资料" 这样,因为有空格,完整的词被当作3个,分开来统计了
2:如搜索 "[测试] %% 修改资料" 游客那里变量 这样我试了 不可行
3:第三个问题是:输出的b.txt 只记录了关键词出现数量 没有提取出关键词所在的行出来
这样的话 我就没法从输出文件中查看想看的日志了
不知道弄这些这对你来说麻烦不 无论如何先谢谢了
追答
且不论麻烦否,还不清楚意思呢,看这意思搜索词里还希望有变量呢,但是你不知如何能准确表达意思,如果是固定的几串关键词(一串里有空格用引号括起来)代码稍改一下就行,如果很多,也是固定的,可以把关键词预先写到文件,如果是一个搜索项包含几个关键词,而关键词之间内容不定则需要另外说明,且里面有[]%!&| 等特殊符号时更是必须说明不然会出错的。
所以找个时间你我都在线时 hi 里交谈一下,不然给你改的又不适用。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询