中国DOS联盟论坛

中国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:
这个应该是 邮件服务器的问题,响应慢了~~我连QQ邮箱也是要尝试5次以上的~~

是的
第8楼 nblue 发表于 2006-06-16 18:30
初级用户 发帖 37 积分 117
呵呵,那位高手网友bagpipe做了一个佛字,本人依赫尔葫芦画瓢做了一个神字,见笑了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023