从批处理输出中添加时间戳到日志行

时间:2016-09-27 04:24:00

标签: windows datetime batch-file timestamp

我有一个计划运行的简单批处理文件,基本上只是将远程网络共享备份到我的计算机。

@ECHO OFF
xcopy \\10.8.0.1\share\ E:\backup\ /c /s /r /d /y /i >> E:\backup\backup.log

日志中的输出如下所示:

\\10.8.0.1\share\test.txt
1 File(s) copied
\\10.8.0.1\share\New Microsoft Word Document.docx
1 File(s) copied

基本上我只想为每个日志条目添加日期和时间戳。我该怎么做呢?

2 个答案:

答案 0 :(得分:7)

您可以将DATE%和%TIME%回显给backup.log。

echo %DATE% %TIME% >> E:\backup\backup.log

这可能是最简单的。

您还可以使用robocopy进行更丰富的日志记录选项。

答案 1 :(得分:3)

您正在寻找标准变量%date%%time%

您可以将命令输出的行作为带有for循环的单行传递到它们之间

@echo off
for /f "delims=" %%i in ('xcopy \\10.8.0.1\share\ E:\backup\ /c /s /r /d /y /i') do (
    echo [%date%, %time%] %%i >> E:\backup\backup.log
)

简短说明:循环将命令的输出拆分为单行。对于每一行,程序然后回显时间戳并在输出的一行之后。然后,它会为xcopy命令返回的每一行重复。