Robocopy /mov 记录目标文件夹中的所有文件?

Robocopy /mov logs all files from target folder?

我使用 robocopy 将文件从源文件夹移动到目标文件夹。效果很好,我对 robocopy 的日志记录感到有点惊讶 - 它列出了目标文件夹的所有文件?

假设我们有两个文件夹,一个空的源文件夹和一个包含一些文件的目标文件夹 (target1-3)。如果我 运行 这个命令:

robocopy "D:\test\source" "D:\test\target" /S /MOV /R:10 /W:30 /UNILOG+:"log.txt"

我得到了这个输出(抱歉德国人):

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren fr Windows                              
-------------------------------------------------------------------------------

  Gestartet: Dienstag, 6. April 2021 20:50:24
   Quelle : D:\test\source\
     Ziel : D:\test\target\

    Dateien : *.*
        
  Optionen: *.* /S /DCOPY:DA /COPY:DAT /MOV /R:10 /W:30 

------------------------------------------------------------------------------

                       0    D:\test\source\
      *EXTRA Datei             0    target1.txt
      *EXTRA Datei             0    target2.txt
      *EXTRA Datei             0    target3.txt

------------------------------------------------------------------------------

           Insgesamt   KopiertšbersprungenKeine šbereinstimmung    FEHLER    Extras
Verzeich.:         1         0         1         0         0         0
  Dateien:         0         0         0         0         0         3
    Bytes:         0         0         0         0         0         0
   Zeiten:   0:00:00   0:00:00                       0:00:00   0:00:00
   Beendet: Dienstag, 6. April 2021 20:50:24

为什么 robocopy 会列出目标文件夹中的所有文件?我怎么能避免呢? (在实际用例中,此列表可能会变得很长。)

您可以使用额外的开关来减少日志记录。我建议看看 robocopydocumentation。您可以添加 /NFL 选项以忽略文件的日志记录。您可以添加 /NDL 选项来忽略目录的日志记录:

robocopy "D:\test\source" "D:\test\target" /S /MOV /R:10 /W:30 /NFL /NDL /UNILOG+:"log.txt"

但这将忽略所有文件和目录的日志记录(不仅是 EXTRA 个)。如果您只是不想在您的日志中包含 EXTRA 个文件和目录,但不想包含其他所有内容,则您需要额外的工具。您可以 post 处理您的日志文件(如果值得的话):

(Select-String -Path log.txt -Pattern '^\s+\*EXTRA' -NotMatch | Select-Object -ExpandProperty Line) | Set-Content -Path log.txt

此 PowerShell 管道将删除 log.txt 中以空格开头,后跟 *EXTRA.

的每一行

仅供参考:robocopy 记录 EXTRA 个文件,因为它不仅可以用于复制,还可以用于单向同步。因此,您不仅可以将文件复制到目标位置,还可以删除目标位置的文件,这些文件在源位置(不再)存在。查看 /PURGE/MIR 选项。