Robocopy - 创建一个只有成功文件传输的日志文件

Robocopy - create a log file with only successful file transfers

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

  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 并将其写入日志以获得我需要的内容,但我没有能够找到一种方法来生成仅包含成功文件名的简单日志文件(如上例)

我不太清楚你是只想在日志中有复制的文件还是没有复制的相同文件。 您可以省略 /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
)