科学网

 找回密码
  注册

tag 标签: 定时运行

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[原][Matlab][03] 定时运行+完成计算后发送邮件
nwang1986 2015-10-4 15:05
曾想要是能让Matlab在某时刻自动运行,运行某个计算或获取信息,结束时把结果发邮件或短消息给自己就好了。查阅文献然后试验,发现结合windows的计划任务schtasks命令,matlab的命令行启动方式,以及自带的sendmail函数可以实现。 第一步,添加计划任务 写3个m文件分别用于添加任务,查看任务和删除任务,放在matlab路径文件夹中。 -------------------添加计划任务 addtotask.m---------------------- function addtotask(taskname,runfile,frequency,starttime) %frequency: MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT. %starttime: HH:mm (24 hour time) system( ); return; -------------------查看计划任务 checktask.m---------------------- function checktask(taskname) system( ); return; -------------------删除计划任务 deltask.m---------------------- function deltask(taskname) system( ); return; 在Matlab命令行窗口输入以下句子,意思为建立名为“matlab_daily_task”的计划任务,执行“dailytask.bat”里的内容,执行频率为每天,执行时间为07:00。也可以根据喜欢将频率每天'daily'设置为每小时'Hourly'或只执行一次'Once'。 addtotask('matlab_daily_task','dailytask.bat','daily','07:00'); 随时也可以输入函数checktask或deltask查看这个任务的状态或删除它。 checktask('matlab_daily_task'); deltask('matlab_daily_task'); 第二步,设置matlab命令行启动格式 建立dailytask.bat批处理文件,内容如下。意思为启动matlab并运行其中的MyTask.m文件。dailytask.bat和MyTask.m要在路径文件夹下。 -------------------批处理 dailytask.bat----------------- matlab -nosplash -nodesktop -r MyTask 创建MyTask.m文件并将自己想要实现的功能或计算输入,之后调用mysendmail函数把结果发给自己。然后最后一行要写上 exit; 用于程序执行完毕后关闭matlab。 第三步,创建mysendmail.m文件用于发邮件 ------------------发邮件 mysendmail.m------------------- function mysendmail(emailaddress,topic,content,file) MailAddress = 'XXXX@gmail.com'; password = '123456'; setpref('Internet','E_mail',MailAddress); setpref('Internet','SMTP_Server','smtp.gmail.com'); setpref('Internet','SMTP_Username',MailAddress); setpref('Internet','SMTP_Password',password); props = java.lang.System.getProperties; props.setProperty('mail.smtp.auth','true'); props.setProperty('mail.smtp.socketFactory.class','javax.net.ssl.SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port','465'); sendmail(emailaddress,topic,content,file); return; 其中MailAddress为发件人邮箱地址,password为发件人邮箱密码,emailaddress为收件人邮箱地址,topic为主题,content为正文,file为附件。content正文为单行字符串类型,换行要采用 的方式,所以不是很方便。另外content不支持html格式的代码,所以功能有些弱。 至此,定时运行+进行计算+发送邮件的任务完成。如果是发到139邮箱就可以收到短信提示。休假或周末的时候让电脑算着东西并随时将结果发给自己,工作休息两不误,出现问题也能及时补救。
个人分类: [原创]|9796 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-16 19:47

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部