首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在批处理文件作业上生成可管理的日志文件

在批处理文件作业上生成可管理的日志文件
EN

Stack Overflow用户
提问于 2011-03-17 01:43:03
回答 2查看 1.2K关注 0票数 0

我正在通过一个计划每小时运行一次的批处理文件运行一个机器人复制作业。我使用以下开关:

机器复制\服务器名称\共享D:\某个目录/E /R:5 /Log+:D:\Logs\CopyLog.txt

它已经忠实地工作了很长一段时间,但今天早上遇到了一个故障。我去检查日志文件,惊讶地发现它已经增长到略低于280Mb。

我的问题是,如何更改我的批处理文件,以写入更易管理的日志文件?我认为在报告中附加一个期间是有意义的。例如: CopyLog_201103.txt将是2011年3月的日志文件。

我很擅长使用高级编程语言,但在我成长的时候,命令行编程早已不复存在。我确实学到了深入理解更基本的计算机概念的价值。

如果您有任何建议或建议,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-17 02:26:51

您可以使用以下cmd代码片段获取日、月和年:

代码语言:javascript
复制
for /f "usebackq tokens=1-3 delims=/" %%d in ('%date%') do (
    set day=%%d
    set month=%%e
    set year=%%f
)

(警告:区域设置特定。)

现在,您可以根据需要写入不同的日志文件。

票数 1
EN

Stack Overflow用户

发布于 2011-03-17 02:27:57

丑陋的方式(不推荐,但在Windows 2000及更早版本上需要):

代码语言:javascript
复制
set MyDate=%DATE:-=%
set Filename=D:\Logs\CopyLog_%MyDate:~0,6%
robocopy ... /Log+:%Filename%

注意:这假设ISO-8601是系统上的短日期格式。如果不是这样,那么您需要从%date%的子字符串构造日期。

不受区域设置影响的方法:

代码语言:javascript
复制
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%
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5329414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档