我正在通过计划每小时运行一次的批处理文件运行robocopy作业。我使用以下开关:
Robocopy \ servername \ share D:\ somedir / E / R:5 /Log+:D:\Logs\CopyLog.txt
它已经忠实地工作了很长时间但今天早上遇到了障碍。我去检查日志文件,并惊讶地发现它已经增长到只有280 Mb。
我的问题是如何更改我的批处理文件以编写更多可管理的日志文件?我认为附加报告的时间段是有意义的。即:CopyLog_201103.txt将是2011年3月的日志文件。
我非常擅长使用更高级别的编程语言,但是在我成长的过程中,命令行编程已经很久了。我肯定在学习如何深入了解更基本的计算机概念。
任何建议/意见都将不胜感激,谢谢。
答案 0 :(得分:3)
set MyDate=%DATE:-=%
set Filename=D:\Logs\CopyLog_%MyDate:~0,6%
robocopy ... /Log+:%Filename%
注意:这假定ISO-8601是您系统上的短日期格式。如果情况并非如此,那么您需要从%date%
的子字符串构造日期。
for /f "skip=1" %%d in ('wmic os get localdatetime') do if not defined MyDate set MyDate=%%d
set Filename=D:\Logs\CopyLog_%MyDate:~0,6%
robocopy ... /Log+:%Filename%
答案 1 :(得分:1)
您可以使用此cmd代码段获取日期,月份和年份:
for /f "usebackq tokens=1-3 delims=/" %%d in ('%date%') do (
set day=%%d
set month=%%e
set year=%%f
)
(警告:特定于语言环境。)
现在您可以根据需要写入不同的日志文件。