【问题标题】:Robocopy - create a log file with only successful file transfersRobocopy - 创建仅包含成功文件传输的日志文件
【发布时间】:2017-07-31 21:21:16
【问题描述】:

我正在尝试完成两件事,但我不确定最好的方法。

  1. 将新的或修改的文件从 windows 源复制到另一个 windows 服务器并记录事务(使用 Robocopy 完成和记录),例如:

    ROBOCOPY /XO /XX /Z /V /BYTES /LOG:\ServerB\Log.txt \ServerA\source \ServerB\target *.txt /A-:A

  2. 创建一个仅包含上面复制的文件名的简单列表(另一个进程的控制文件)到一个没有任何其他详细信息的新文件,例如:


file1.txt
file2.txt
file3.txt



我考虑过两次运行 Robocopy 语句,一次使用 /L 并将其写入日志,然后在不使用 /L 的情况下运行相同的语句并将其写入日志以获得我需要的内容,但我无法找到生成的方法一个只有成功文件名的简单日志文件(如上例)

【问题讨论】:

    标签: logging robocopy


    【解决方案1】:

    我不太清楚您是否只想在日志中包含复制的文件,甚至是未复制的相同文件。 您可以省略 /Verbose 选项,那么您不需要隐藏尽可能多的状态。 您需要此日志来为其他流程创建列表还是用于文档?

    如果 LOG 用于文档,那么您可以在没有选项 /L 的情况下循环使用所有内容。

    setlocal
    for /f "delims= " %%t in ('robocopy . . /njh /njs')do set "tab=%%t"
    3>controlfile (
      for /f "tokens=3 delims=%tab%" %%i in ('robocopy /xx /xo /Z /bytes \\ServerA\source \\ServerB\target *.txt /tee /LOG:\\ServerB\Log.txt
      ') do >&3 echo %%i
    )
    

    【讨论】:

    • 我提供的带有详细日志记录的日志示例是文档所必需的。另一个进程需要复制的文件列表(新的和修改的),这就是为什么我考虑了两次 robocopy 语句,第一次运行包括 /L。由于两次运行 robocopy 命令不会产生相同的结果,因此我想尝试使用 /L 和不使用 /V 的建议。谢谢你的建议!我会尽快尝试
    • 经过几个小改动后,我完全按照我的需要完成了这项工作。谢谢!这是我使用的代码的非特定版本:
    • SETLOCAL FOR /F "DELIMS= " %%t IN ('ROBOCOPY . . /NJH /NJS') DO SET "tab=%%t" 3>controlFile.txt ( FOR /F "TOKENS=3 DELIMS=%tab%" %%i IN ('ROBOCOPY /XX /XO /Z /BYTES /L \\ServerA\source \\ServerB\target *.txt ') DO >&3 ECHO %%i ) ROBOCOPY /XO /XX /Z /V /BYTES /LOG:\\ServerB\LOG.txt \\ServerA\source \\ServerB\target *.txt /A-:A
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2014-04-10
    • 1970-01-01
    • 2021-07-24
    相关资源
    最近更新 更多