Board logo

标题: [其他] [已解决]批处理用blat发送邮件出现错误,请帮忙看看哪里写错了? [打印本页]

作者: dyj545    时间: 2014-12-18 15:07     标题: [已解决]批处理用blat发送邮件出现错误,请帮忙看看哪里写错了?

本帖最后由 dyj545 于 2014-12-19 08:11 编辑

请帮忙看看那些写错了.运行后的结果
"磁盘空间剩余 33506MB"
Blat v2.5.0 w/GSS encryption (build : Sep 14 2005 22:46:29)

Blat saw and processed these options, and found fault with the last one...
    -to
Not enough arguments supplied for option: -to
Blat found fault with: -to

-to <recipient> : recipient list (also -t) (comma separated)
请按任意键继续. . .

以下是代码
  1. @echo off
  2. :::::::::::::: 查询硬盘空间::::::::::::::
  3. set dn=d
  4. for /f "tokens=2* delims=:" %%a in ('fsutil volume diskfree %dn%:') do set ds=%%a
  5. set ds=%ds:~0,-6%
  6. ::::::::::::::判断磁盘空间以MB为单位::::::::::::::
  7. if %ds% lss 50000 (
  8. echo "磁盘空间剩余%ds%MB"
  9. echo "磁盘空剩余%ds%MB" >body.txt
  10. echo "磁盘空间不足,请及时清理." >>body.txt
  11. set from=1234@163.com
  12. set user=1234@163.com
  13. set pass=1234
  14. set to=1234@163.com
  15. set subj=server6_disk_used_testmail
  16. set mail=body.txt
  17. set attach=*.jpg
  18. set server=SMTP服务器
  19. set debug=-debug -log blat.log -timestamp
  20. blat %mail% -to %to% -base64 -charset Gb2312 -subject %subj% -attach %attach% -server %server% -f %from% -u %user% -pw %pass%
  21. ) else (
  22. echo 磁盘空间足够
  23. )
  24. pause
复制代码

作者: dyj545    时间: 2014-12-18 15:43

提示发现故障-TO 可是我去掉if判断 磁盘空间的语句时 单独运行却能正常发送邮件.
作者: dyj545    时间: 2014-12-18 16:06

我自己解决了,用bat调用bat就可以了.
直接用if else不行就改成了调用bat
@echo off
set dn=d
for /f "tokens=2* delims=:" %%a in ('fsutil volume diskfree %dn%:') do set ds=%%a
set ds=%ds:~0,-6%
if %ds% lss 50000 (
echo "磁盘空间剩余%ds%MB"
echo "磁盘空间剩余%ds%MB" >body.txt
call sendmail1.bat
)
pause
执行后OK了
作者: amwfjhh    时间: 2014-12-19 09:19

不用这么麻烦,本质是变量延时问题。对if语句块内变量开启变量延时并用!var!的方式来获取变量值就可以了。
作者: dyj545    时间: 2014-12-22 13:30

回复 4# amwfjhh
感谢,我用变量延迟一步到位了.原来是这个原因.
作者: amwfjhh    时间: 2015-1-6 09:50

哈,受你这个启发,我给财务部的同事写了一个每月工资条自动发送到各同事登记邮箱的批处理。免得她们一个一个地发邮件,工作量大就导致此事经常是你不主动问,她们就不会主动发……
作者: ygqiang    时间: 2015-1-6 10:50

回复  amwfjhh
感谢,我用变量延迟一步到位了.原来是这个原因.
dyj545 发表于 2014-12-22 13:30



    楼主给出最终正确的代码吧。谢谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2