Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Robocopy-创建只有成功文件传输的日志文件_Logging_Robocopy - Fatal编程技术网

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

Logging Robocopy-创建只有成功文件传输的日志文件,logging,robocopy,Logging,Robocopy,我正在努力完成两件事,但我不确定最好的方法是什么 将新的或修改过的文件从windows源复制到另一个windows服务器并记录事务(使用Robocopy完成并记录),例如: ROBOCOPY/XO/XX/Z/V/BYTES/LOG:\ServerB\LOG.txt\ServerA\source\ServerB\target*.txt/A-:A 创建一个简单列表(另一个进程的控制文件),其中只包含上面复制到新文件中的文件名,而不包含任何其他详细信息,例如: 我考虑过运行Robocopy语句两次

我正在努力完成两件事,但我不确定最好的方法是什么

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

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

  • 创建一个简单列表(另一个进程的控制文件),其中只包含上面复制到新文件中的文件名,而不包含任何其他详细信息,例如:





  • 我考虑过运行Robocopy语句两次,一次是使用/L并将其写入日志,然后在不使用/L的情况下运行同一语句并将其写入日志,以获得所需的内容,但我一直无法找到一种方法来生成一个仅包含成功文件名的简单日志文件(如上面的示例)

    我不太清楚您是只想将复制的文件保存在日志中,还是想将未复制的文件保存在日志中。 您可以省略/Verbose选项,这样就不需要隐藏那么多的状态。 您是否需要此日志来创建其他流程的列表,还是用于文档

    如果日志是用于文档的,那么您可以在循环中不使用选项/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命令不会产生相同的结果,我想用a/L和不使用/V来尝试您的建议。谢谢您的建议!我会很快尝试一下,在做了一些小的改变后,我完全按照我所需要的方式工作了。谢谢这是我使用的代码的非特定版本:
    SETLOCAL FOR/F“DELIMS=“%%t IN('ROBOCOPY../NJH/NJS')DO SET”tab=%%t“3>controlFile.txt(FOR/F“TOKENS=3 DELIMS=%tab%”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
    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
    )