![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 17:58 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于用批处理发送IP到邮箱的另一问题? |
| 可打印版本 2,119 / 7 |
| 第1楼 nblue | 发表于 2006-06-16 11:16 |
| 初级用户 发帖 37 积分 117 | |
|
关于用批处理发送IP到邮箱的另一问题? 前些日子在本坛发了一个如何用批处理发送IP到邮箱的问题,得到坛里的朋友们指指点点。本人受益非浅,但本人对这方面的知识实在太菜,还有一问题不能解决。唯有再发此贴请求高人指点。
原批处理代码: @echo off for /f "tokens=2 delims=:" %%i in ('"ipconfig|findstr /I /c:"ip address""') do set a=%%i echo NameSpace="http://schemas.microsoft.com/cdo/configuration/" >1.vbs echo Set Email=CreateObject("CDO.Message") >>1.vbs echo Email.From="你发送的邮箱地址" >>1.vbs echo Email.To="你接收的邮箱地址" >>1.vbs echo Email.Subject="TEST" >>1.vbs echo Email.Textbody="%a%" >>1.vbs echo With Email.Configuration.Fields >>1.vbs echo ^.Item(NameSpace^&"sendusing")=2 >>1.vbs echo ^.Item(NameSpace^&"smtpserver")="SMTP地址" >>1.vbs echo ^.Item(NameSpace^&"smtpserverport")=25 >>1.vbs echo ^.Item(NameSpace^&"smtpauthenticate")=1 >>1.vbs echo ^.Item(NameSpace^&"sendusername")="用户名" >>1.vbs echo ^.Item(NameSpace^&"sendpassword")="密码" >>1.vbs echo ^.Update >>1.vbs echo End With >>1.vbs echo Email.Send >>1.vbs cscript c:\1.vbs del c:\1.vbs 问题:在联网的情况下批处理运行后能成功将IP发到邮箱,但如果没有联网,那就会出错。如何修改命令使批处理在系统联网的情况下才运行,在没联网的时候不运行或不出错误显示? |
|
| 第2楼 bagpipe | 发表于 2006-06-16 11:31 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
把倒数第二句改一下试试:
cscript c:\1.vbs 1>nul 2>nul||echo 发送错误... 没有经过实验,请楼主实验后报告一下情况,谢谢........ |
|
| 第3楼 bagpipe | 发表于 2006-06-16 12:02 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
可以尝试以下代码,上面的可能不成:
@echo off for /f "tokens=2 delims=:" %%i in ('"ipconfig|findstr /I /c:"ip address""') do set a=%%i echo on error resume next >1.txt echo NameSpace="http://schemas.microsoft.com/cdo/configuration/" >>1.vbs echo Set Email=CreateObject("CDO.Message") >>1.vbs echo Email.From="你发送的邮箱地址" >>1.vbs echo Email.To="你接收的邮箱地址" >>1.vbs echo Email.Subject="TEST" >>1.vbs echo Email.Textbody="%a%" >>1.vbs echo With Email.Configuration.Fields >>1.vbs echo ^.Item(NameSpace^&"sendusing")=2 >>1.vbs echo ^.Item(NameSpace^&"smtpserver")="SMTP地址" >>1.vbs echo ^.Item(NameSpace^&"smtpserverport")=25 >>1.vbs echo ^.Item(NameSpace^&"smtpauthenticate")=1 >>1.vbs echo ^.Item(NameSpace^&"sendusername")="用户名" >>1.vbs echo ^.Item(NameSpace^&"sendpassword")="密码" >>1.vbs echo ^.Update >>1.vbs echo End With >>1.vbs echo Email.Send >>1.vbs echo if err.number^<^>0 then>>1.vbs echo wscript.echo 发送错误......>>1.vbs echo wscript.quit >>1.vbs echo end if >>1.vbs cscript c:\1.vbs del c:\1.vbs 没有经过测试,请测试后报告,谢谢 |
|
| 第4楼 nblue | 发表于 2006-06-16 18:04 |
| 初级用户 发帖 37 积分 117 | |
|
测试平台:WINDOWS XP
测试机型:1,IBM T60(新系统) 2,兼容机 测试次数:20次以上 设原来的批处理为A, 有隐藏错误功能的批处理为B。测试方法: 1,联网情况下:运行A能成功发送IP到邮箱,但有窗口出现,约15秒消失;运行B出现错误提示“c:\1.vbs<18,14>microsoft vbscript 编译器错误:无效字符”,有窗口出现,10秒左右消失窗口。 2,断网情况下:运行A有运行窗口出现,在IBM T60一闪而过,在兼容机需要几秒钟后才消失。运行B时,在IBM T60一闪而过。在兼容机上还没试 |
|
| 第5楼 nblue | 发表于 2006-06-16 18:05 |
| 初级用户 发帖 37 积分 117 | |
|
我在测试中,发现不是每次运行批处理就会发送IP的。大概运行四五次才有一次成功发送
|
|
| 第6楼 electronixtar | 发表于 2006-06-16 18:12 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
这个应该是 邮件服务器的问题,响应慢了~~我连QQ邮箱也是要尝试5次以上的~~
|
|
| 第7楼 nblue | 发表于 2006-06-16 18:18 |
| 初级用户 发帖 37 积分 117 | |
Originally posted by electronixtar at 2006-6-16 18:12: 是的 |
|
| 第8楼 nblue | 发表于 2006-06-16 18:30 |
| 初级用户 发帖 37 积分 117 | |
|
呵呵,那位高手网友bagpipe做了一个佛字,本人依赫尔葫芦画瓢做了一个神字,见笑了
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |