带有日志+报告日期的Robotcopy

时间:2017-03-21 15:13:47

标签: powershell command-line timestamp runtime-error robocopy

我正在运行一个Robocopy命令,我现在遇到一个奇怪的错误,它曾经有效。我确实看过其他几篇StackExchange文章,但是他们没有处理我正在处理的内容。

  1. Talks about C# code
  2. Command for Robocopy to log created date
  3. Create File with current Date in Filename + Robocopy logging
  4. Robocopy: ERROR : Invalid Parameter #4
  5. 我创建了一些代码,可以在robocopy日志的末尾添加日期。

    $ReportDate = (Get-Date).tostring("dd-MM-yyyy-hh-mm-ss")
    $RoboCopyLog = New-Item -itemType File -Path C:\Results -Name $("RoboCopyLog_" + $ReportDate + ".txt")
    

    我有这个工作日志,但是经过一些Windows更新并且几周没有触及它,我现在收到此错误。

    -------------------------------------------------------------------------------
       ROBOCOPY     ::     Robust File Copy for Windows                            
    
    -------------------------------------------------------------------------------
    
      Started : Tuesday, March 21, 2017 7:24:56 AM
       Source - C:\MyTests\
         Dest - C:\NewTests\
    
        Files : 
      Options : /S /E /DCOPY:DA /COPY:DAT /R:1000000 /W:30 
    
    ------------------------------------------------------------------------------
    
    ERROR : Invalid Parameter #4 : "/L:C:\Results\RoboCopyLog_21-03-2017-07-24-56.t
    xt"
    
           Simple Usage :: ROBOCOPY source destination /MIR
    
                 source :: Source Directory (drive:\path or \\server\share\path).
            destination :: Destination Dir  (drive:\path or \\server\share\path).
                   /MIR :: Mirror a complete directory tree.
    
        For more usage information run ROBOCOPY /?
    
    
    ****  /MIR can DELETE files as well as copy them !
    

    我用来创建robocopy作业的命令如下:

    $RoboCopy2 = Start-Job {
    $Results = "C:\Results"
    $Source = "C:\MyTests"
    $Destination = "C:\NewTests"
    $ReportDate = (Get-Date).tostring("dd-MM-yyyy-hh-mm-ss")
    $RoboCopyLog = New-Item -itemType File -Path C:\Results -Name $("RoboCopyLog_" + $ReportDate + ".txt")
    
    
    Robocopy $Source $Destination /E /L:$RoboCopyLog
    
    }
    Wait-Job $RoboCopy2
    Receive-Job $RoboCopy2
    

1 个答案:

答案 0 :(得分:1)

正如Ansgar Wiechers所说,问题在于你的/L:RoboCopyLog

如果您看到Robocopy here的文档,您会发现:

  

/升   指定仅列出文件(不复制,删除或标记时间戳)。

鉴于您是否想要追加,您需要的是其中之一:

  

/日志:<LogFile>   将状态输出写入日志文件(覆盖现有日志文件)。

     

/ log +:<LogFile>将状态输出写入日志文件(附加   输出到现有的日志文件)。