声明:博客内所有技术性文章都是由作者本人工作经验的总结,  实现过程中有搜索资料为参考的绝不涉嫌抄袭,均为个人习惯的总结。
今天要说的是用脚本实现用批处理命令监控网页状态,并发邮件通知。首先我们要先到http://down.51cto.com/data/660876或者http://www.webscreencapture.com下载一个小工具。以下为脚本内容:

@echo off

rem 以下为设置当前日期、当前时间和当前目录,并验证
set curdate=%date:~0,4%%date:~5,2%%date:~8,2%
set curtime=%time:~0,2%%time:~3,2%
set curdir=%~dp0

echo %curdate%
echo %curtime%
echo %curdir%
echo %curdate%%curtime%

rem 进入当前目录,在使用计划任务运行此脚本时候必须要的
cd /d %~dp0

rem 删除网站截图,并使用webscreencapture.exe产生新的,页面可以检查多个
del /s /q *.jpg
webscreencapture.exe "http://www.abcde.com.cn/RSpages/main.aspx" "abcde%curdate%%curtime%.jpg"
::webscreencapture.exe "www.baidu.com" "abcde%curdate%%curtime%.jpg"

rem 删除并产生新的邮件内容,这个文件也可以不用每次生成
del /s /q detail.txt
   (
   echo;abcde Web status report:
   echo;Please refer to the p_w_upload for a screen capture of http://www.abcde.com.cn.  If the majority of the contents are loaded, then website is stable.
   echo;-- abcde Support
   ) > detail.txt

rem 删除并产生新的发邮件地址,也可以不每次生成
del /s /q *.vbs
   (
       echo;NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
       echo;set Email = CreateObject^("CDO.Message"^)
       rem 发件人地址
       echo;Email.From = "DailySupport@abcde.com.cn"
       rem 收件人地址,也可以是邮件分发组
       echo;Email.To = "xqliu@abcde.com.cn"
       rem 邮件的标题
       echo;Email.Subject = "abcde Web status"
       rem 邮件的内容,如果单独写vbs脚本这里需要绝对路径
       echo;x="%curdir%detail.txt"
       rem 邮件的附件,也就是上面的截图,我觉得应该可以添加多个附件
       echo;y="%curdir%abcde%curdate%%curtime%.jpg"
       echo;Set fso=CreateObject^("Scripting.FileSystemObject"^)
       echo;Set myfile=fso.OpenTextFile^(x,1,Ture^)
       echo;c=myfile.readall
       echo;myfile.Close
       echo;Email.Textbody = c
       rem 如果上面添加多个附件,这里也需要加载多个
       echo;Email.AddAttachment y
       echo;with Email.Configuration.Fields
       echo;.Item^(NameSpace^&"sendusing"^) = 2
       rem 邮件服务器地址或域名
       echo;.Item^(NameSpace^&"smtpserver"^) = "server.abcde.com.cn"
       rem 邮件服务器端口号
       echo;.Item^(NameSpace^&"smtpserverport"^) = 25
       echo;.Item^(NameSpace^&"smtpauthenticate"^) = 1
       rem 发件人的邮箱和密码
       echo;.Item^(NameSpace^&"sendusername"^) = "DailySupport@abcde.com.cn"
       echo;.Item^(NameSpace^&"sendpassword"^) = "8ik,9ol."
       echo;.Update
       echo;end with
       echo;Email.Send
       echo;Set Email=Nothing        
   ) > script.vbs

rem 用批处理命令执行上面生成的vbs脚本
start wscript script.vbs

将以上内容保存为bat文件和上面下载的小工具放在一个文件夹里,根据注释说明更改成自己的东西,运行批处理不报错的话 就可以接收到一份带网站页面截图的邮件了。如果需要定时发的话就用windows的计划任务运行这个脚本


QQ 交流 群 221046788