无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4816|回复: 11
打印 上一主题 下一主题

[已解决] 批处理监控网页关键词并报警

[复制链接]
跳转到指定楼层
1#
发表于 2014-1-9 15:50:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 村长就是俺 于 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
2#
 楼主| 发表于 2014-1-10 16:50:05 | 只看该作者
求大神指点
回复

使用道具 举报

3#
发表于 2014-1-12 22:43:15 | 只看该作者
wget可以做到

点评

大神能否帮忙做一个?  详情 回复 发表于 2014-1-13 09:00
回复

使用道具 举报

4#
 楼主| 发表于 2014-1-13 09:00:17 | 只看该作者

大神能否帮忙做一个?
回复

使用道具 举报

5#
发表于 2014-1-15 19:22:25 来自手机 | 只看该作者
帮顶!!!!
回复

使用道具 举报

6#
发表于 2014-1-16 19:20:39 | 只看该作者
用wget下载该网页,然后用find之类的搜索看有没有关键词,有就进行下一步,没有就循环,通过at定时调用该bat,应该就可以

点评

@findstr 1**6789 onse.txt&&echo 1||echo 0 pause 试了这个可以正常抓取到关键词,但是不知道怎么改成goto,求指点  详情 回复 发表于 2014-1-17 13:26
@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 = CreateO  详情 回复 发表于 2014-1-17 13:14
回复

使用道具 举报

7#
 楼主| 发表于 2014-1-17 13:14:18 | 只看该作者
紫狐 发表于 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
回复

使用道具 举报

8#
 楼主| 发表于 2014-1-17 13:26:37 | 只看该作者
紫狐 发表于 2014-1-16 19:20
用wget下载该网页,然后用find之类的搜索看有没有关键词,有就进行下一步,没有就循环,通过at定时调用该ba ...

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

试了这个可以正常抓取到关键词,但是不知道怎么改成goto,求指点
回复

使用道具 举报

9#
发表于 2014-1-17 15:37:26 | 只看该作者
@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

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

点评

谢谢紫狐,已经初步搞定,先分了四个批处理,然后再合并了,目前测试暂时正常:先下载txt,然后再检测关键词,如果关键词存在,电脑响起beet报警声,20分钟后再次下载并检测,如果不存在,30分钟后再次下载并检测。  详情 回复 发表于 2014-1-18 09:14
回复

使用道具 举报

10#
发表于 2014-1-17 21:37:17 | 只看该作者
饿滴神里,用批处理来做。。。。。。。。                                                                                                                                                                                                                                                                                                                                                                                                                                             

点评

一开始想用excel vba做,百度了几个例子,可惜太菜,最终还是差一点点,最后突然觉得批处理应该很容易实现,果然,效果还不错。  详情 回复 发表于 2014-1-18 09:16
回复

使用道具 举报

11#
 楼主| 发表于 2014-1-18 09:14:00 | 只看该作者
紫狐 发表于 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分钟后再次下载并检测。如此循环。
回复

使用道具 举报

12#
 楼主| 发表于 2014-1-18 09:16:17 | 只看该作者
panet8888 发表于 2014-1-17 21:37
饿滴神里,用批处理来做。。。。。。。。                                                               ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 09:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表