如何创建 robocopy 操作日志并将其保存在以今天日期命名的文本文件中?

如何创建 robocopy 操作日志并将其保存在以今天日期命名的文本文件中?

我正在使用命令提示符中的 robocopy 将一些资产从一个文件夹复制到另一个文件夹。但是,我想将所有复制的资产的名称记录在一个 .txt 文件中。此 .txt 文件应以“currentDate.txt”的形式保存。

实际情况:我们将每天运行一次调度程序。此调度程序会将所有资产从一个文件夹复制到另一个文件夹。

请参阅以下链接以获取 Robocopy 命令的屏幕截图:

Robocopy

任何帮助都将不胜感激:-)

答案1

我想将所有复制资产的名称记录在 .txt 文件中。

该.txt文件应以“currentDate.txt”的形式保存。

  • 使用 robocopy/log:<LogFile>选项。

  • 您可能还想使用/tee选项

    将状态输出写入控制台窗口以及日志文件。

批处理文件示例(copyassets.cmd):

@echo off
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (
  set _date=%%a%%b%%c
  )
echo robocopy ship shore /log:%_date%.txt
  • 根据需要进行修改以获得您喜欢的日期格式。
  • echo如果您对日期格式满意,请删除最后一个
  • /s如果您的源目录包含需要复制的子目录则使用。

句法

robocopy <Source> <Destination> [<File>[ ...]] [<Options>]

...

日志记录选项

...

在此处输入图片描述

来源Robocopy

答案2

这是一个每天创建不同日志文件的解决方案。您只需在 PowerShell 或批处理命令文件中调用 robocopy 并执行文件操作并让其创建日志,然后在下一行重命名日志文件。示例:

Rename-Item -Path "C:\logs\robocopy.log" -NewName "robocopy-$(Get-Date -F yyyy.MM.dd)$($_.Extension).log"

结果将是一个如下所示的日期文件:

robocopy-2021.06.22.log

答案3

RoboCopy 的日志是 DOS 格式,这不是很好...尝试一下 GS RichCopy - 它具有 RoboCopy 的所有功能,但它还有一些其他功能,例如复制打开/锁定的文件,可以复制时间戳,并且有一个 GUI 界面,带有一个好看的日志,您可以轻松地将其复制并粘贴到记事本中。

答案4

您可以使用

rem formating-date
set shortTime=%time:~0,8%
set shortTime=%shortTime: =0%
set YY=%date:~6,4%
set MM=%date:~3,2%
set /A DD=%date:~0,2%

相关内容