无忧启动论坛

标题: 批处理监控网页关键词并报警 [打印本页]

作者: 村长就是俺    时间: 2014-1-9 15:50
标题: 批处理监控网页关键词并报警
本帖最后由 村长就是俺 于 2014-1-18 09:17 编辑

单位内网ht tp://11.35.27.5:8822/data/onse.txt]每20分钟自动更新一次,现想通过批处理自动检索该页面,当检索到关键词302603088888时,电脑l自动发出报警声音,然后再每隔30分钟自动重新检索一次。

本人菜鸟,求大神帮忙实现,万分感谢。

@echo off
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >a.vbe  
echo xPost.Open "GET","ht tp://11.35.27.5:8822/data/onse.txt",0 >>a.vbe  
echo xPost.Send() >>a.vbe  
echo Set sGet = CreateObject("ADODB.Stream") >>a.vbe  
echo sGet.Mode = 3 >>a.vbe  
echo sGet.Type = 1 >>a.vbe  
echo sGet.Open() >>a.vbe  
echo sGet.Write(xPost.responseBody) >>a.vbe  
echo sGet.SaveToFile "E:\onse.txt",2 >>a.vbe
a.vbe  
del a.vbe

已经可以下载txt保存到E盘了,现在想从txt中读取关键词,如果关键词1**6789存在就调用media 播放mp3,如果不存在就跳转到倒计时,倒计时半个小时后重新下载txt并再次读取关键词,如此循环下去。
找了一个例子,可惜改来改去都不行,求帮改。

@echo off
findstr "1**6789" onse.txt>nul||goto :2
goto 1
:2
echo 没有找到
goto 3
:1
echo 找到了

:3
pause
作者: 村长就是俺    时间: 2014-1-10 16:50
求大神指点
作者: 朱百亿    时间: 2014-1-12 22:43
wget可以做到
作者: 村长就是俺    时间: 2014-1-13 09:00
朱百亿 发表于 2014-1-12 22:43
wget可以做到

大神能否帮忙做一个?
作者: ffbi    时间: 2014-1-15 19:22
帮顶!!!!
作者: 紫狐    时间: 2014-1-16 19:20
用wget下载该网页,然后用find之类的搜索看有没有关键词,有就进行下一步,没有就循环,通过at定时调用该bat,应该就可以

作者: 村长就是俺    时间: 2014-1-17 13:14
紫狐 发表于 2014-1-16 19:20
用wget下载该网页,然后用find之类的搜索看有没有关键词,有就进行下一步,没有就循环,通过at定时调用该ba ...

@echo off
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >a.vbe  
echo xPost.Open "GET","ht tp://11.35.27.5:8822/data/onse.txt",0 >>a.vbe  
echo xPost.Send() >>a.vbe  
echo Set sGet = CreateObject("ADODB.Stream") >>a.vbe  
echo sGet.Mode = 3 >>a.vbe  
echo sGet.Type = 1 >>a.vbe  
echo sGet.Open() >>a.vbe  
echo sGet.Write(xPost.responseBody) >>a.vbe  
echo sGet.SaveToFile "E:\onse.txt",2 >>a.vbe
a.vbe  
del a.vbe

已经可以下载txt保存到E盘了,现在想从txt中读取关键词,如果关键词1**6789存在就调用media 播放mp3,如果不存在就跳转到倒计时,倒计时半个小时后重新下载txt并再次读取关键词,如此循环下去。
找了一个例子,可惜改来改去都不行,求帮改。

@echo off
findstr "1**6789" onse.txt>nul||goto :2
goto 1
:2
echo 没有找到
goto 3
:1
echo 找到了

:3
pause
作者: 村长就是俺    时间: 2014-1-17 13:26
紫狐 发表于 2014-1-16 19:20
用wget下载该网页,然后用find之类的搜索看有没有关键词,有就进行下一步,没有就循环,通过at定时调用该ba ...

@findstr 1**6789 onse.txt&&echo 1||echo 0
pause

试了这个可以正常抓取到关键词,但是不知道怎么改成goto,求指点
作者: 紫狐    时间: 2014-1-17 15:37
@ECHO OFF
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >a.vbe  
echo xPost.Open "GET","ht tp://11.35.27.5:8822/data/onse.txt",0 >>a.vbe  
echo xPost.Send() >>a.vbe  
echo Set sGet = CreateObject("ADODB.Stream") >>a.vbe  
echo sGet.Mode = 3 >>a.vbe  
echo sGet.Type = 1 >>a.vbe  
echo sGet.Open() >>a.vbe  
echo sGet.Write(xPost.responseBody) >>a.vbe  
echo sGet.SaveToFile "E:\onse.txt",2 >>a.vbe
a.vbe  
del a.vbe

type onse.txt|find /I /C "302603088888" >NUL
if %errorlevel%==1 GOTO nook
if %errorlevel%==0 goto ok

:ok
echo 找到
goto end

:nook
echo 没有找到
goto end

:end
del onse.txt
del a.vbe
@ECHO ON

参考上面内容调整下就可以。


作者: panet8888    时间: 2014-1-17 21:37
饿滴神里,用批处理来做。。。。。。。。                                                                                                                                                                                                                                                                                                                                                                                                                                             
作者: 村长就是俺    时间: 2014-1-18 09:14
紫狐 发表于 2014-1-17 15:37
@ECHO OFF
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >a.vbe  
echo xPost.Open "GET","ht tp ...

谢谢紫狐,已经初步搞定,先分了四个批处理,然后再合并了,目前测试暂时正常:先下载txt,然后再检测关键词,如果关键词存在,电脑响起beet报警声,20分钟后再次下载并检测,如果不存在,30分钟后再次下载并检测。如此循环。
作者: 村长就是俺    时间: 2014-1-18 09:16
panet8888 发表于 2014-1-17 21:37
饿滴神里,用批处理来做。。。。。。。。                                                               ...

一开始想用excel vba做,百度了几个例子,可惜太菜,最终还是差一点点,最后突然觉得批处理应该很容易实现,果然,效果还不错。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3