Board logo

标题: [文本处理] 批处理如何引用变量并写入日志? [打印本页]

作者: smallfish    时间: 2013-6-8 10:06     标题: 批处理如何引用变量并写入日志?

需求:

1. 服务器利用批处理做文件备份,通过rsync命令,需要知道命令执行开始,结束时间,并把开始和结束时间写入到邮件内容里
2. 利用blat发送邮件,将rsync日志以附件形式发送邮件
3. 如果能把rsync日志放到邮件内容里更好,不过目前不知道如何实现。

批处理文件如下:
  1. :: Get the start time
  2. echo %time:~0,8% %date:~0,10%
  3. rsync -avrt -i --log-file="c:\server_backup\rsync.log "/cygdrive/d/temp" rsync@192.168.0.1:/data/backup/"
  4. cd C:\Program Files (x86)\blat311\full\
  5. blat install -server mailserver:25 -f backup@domain.com -to username@domain.com -subject "%time:~0,8% %date:~0,10% Rsync log"  -attach c:\server_backup\rsync.log
  6. :: Get the end time
  7. echo %time:~0,8% %date:~0,10%
复制代码
现在想知道,如何在blat发邮件的时候,把开始和结束时间记录到邮件内容里?
另外如何把rsync的日志文件rsync.log以邮件内容形式发送?
还有:如何在rsync的日志文件名后面加上当前日期?
作者: Python    时间: 2013-6-8 12:26

如何在rsync的日志文件名后面加上当前日期?
  1. set "logfile=c:\server_backup\rsync_%date:~0,10%.log"
  2. :: Get the start time
  3. echo %time:~0,8% %date:~0,10%
  4. rsync -avrt -i --log-file="%logfile% "/cygdrive/d/temp" rsync@192.168.0.1:/data/backup/"
  5. cd /d "C:\Program Files (x86)\blat311\full\"
  6. blat install -server mailserver:25 -f backup@domain.com -to username@domain.com -subject "%time:~0,8% %date:~0,10% Rsync log"  -attach "%logfile%"
  7. :: Get the end time
  8. echo %time:~0,8% %date:~0,10%
复制代码

作者: smallfish    时间: 2013-6-8 13:47

非常感谢!原来这么简单,我试试!
看来批处理写的好的话也很方便哦,功能强大!
作者: smallfish    时间: 2013-6-8 14:53

试了一下,加上日期后执行rsync居然不能生成日志,提示文件路径找不到,但是把后面的日期命令删除直接定义rsync.log就可以。不知道为什么,还是简单点好,呵呵
作者: Batcher    时间: 2013-6-8 15:44

回复 4# smallfish

    把2楼第4行echo命令的结果贴出来看看
作者: smallfish    时间: 2013-6-8 17:02

echo 17:01:55 06/08/2013
作者: Batcher    时间: 2013-6-8 17:12

回复 6# smallfish


    现在知道原因了吗?
作者: smallfish    时间: 2013-6-8 17:41

是因为有空格的缘故?
作者: Batcher    时间: 2013-6-8 19:11

回复 8# smallfish


    斜线
作者: smallfish    时间: 2013-6-9 11:19

谢谢,明白了。
看来还有很多基础知识需要去学。




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