标题: [其他] [已解决]批处理用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)
请按任意键继续. . .
以下是代码- @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%
- ::::::::::::::判断磁盘空间以MB为单位::::::::::::::
- if %ds% lss 50000 (
- echo "磁盘空间剩余%ds%MB"
- echo "磁盘空剩余%ds%MB" >body.txt
- echo "磁盘空间不足,请及时清理." >>body.txt
-
- set from=1234@163.com
- set user=1234@163.com
- set pass=1234
- set to=1234@163.com
- set subj=server6_disk_used_testmail
- set mail=body.txt
- set attach=*.jpg
- set server=SMTP服务器
- set debug=-debug -log blat.log -timestamp
-
- blat %mail% -to %to% -base64 -charset Gb2312 -subject %subj% -attach %attach% -server %server% -f %from% -u %user% -pw %pass%
- ) else (
- echo 磁盘空间足够
- )
- 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 |