网络驱动器上的 Robocopy 不会跳过重复项

网络驱动器上的 Robocopy 不会跳过重复项

这是我的 robocopy 行:

robocopy "\\network\Document\Migration" D:\Migration /S

正如所描述的这里robocopy 应该跳过具有相同大小、日期和名称的文件。

首先从网络复制到本地文件夹

当我第一次执行 robocopy 行时,我的所有测试文件都被复制,结果如下:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------
  Started : 25 July 2022 13:47:35
   Source = \\network\Document\Migration\
     Dest : d:\Migration\
    Files : *.*
  Options : *.* /S /DCOPY:DA /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
          New Dir          3    \\network\Document\Migration\
            New File                   0        file 1.txt
            New File                   0        file 2.txt
            New File                   0        File 3.docx
------------------------------------------------------------------------------
               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         1         0         0         0         0
   Files :         3         3         0         0         0         0
   Bytes :         0         0         0         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00

第二次从网络复制到本地文件夹

现在,如果我再次执行完全相同的命令而不触碰文件,应该会跳过这 3 个文件,对吗?但事实并非如此。所有内容都再次被复制,并显示“*EXTRA 文件”(这次仅显示相关信息):

------------------------------------------------------------------------------
                           3    \\network\Document\Migration\
          *EXTRA File                  0        file 1.txt
          *EXTRA File                  0        file 2.txt
          *EXTRA File                  0        File 3.docx
            New File                   0        file 1.txt
            New File                   0        file 2.txt
            New File                   0        File 3.docx

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

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         1         0         0         0
   Files :         3         3         0         0         0         3
   Bytes :         0         0         0         0         0         0

首先从本地文件夹复制到其他本地文件夹

在写这个问题之前,我在 2 个本地文件夹上测试了该命令,其中 3 个测试文件被复制到前一个目标文件夹作为源路径和新的目标路径:

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

          New Dir          3    d:\Migration\
            New File                   0        file 1.txt
            New File                   0        file 2.txt
            New File                   0        File 3.docx

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

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         1         0         0         0         0
   Files :         3         3         0         0         0         0
   Bytes :         0         0         0         0         0         0

3 个文件已按预期复制。

从本地到本地的第二次复制

第二次执行此脚本时,完整结果如下:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  Started : 25 July 2022 14:49:13
   Source : d:\Migration\
     Dest : d:\Migration2\

    Files : *.*

  Options : *.* /S /DCOPY:DA /COPY:DAT /R:1000000 /W:30

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

                           3    d:\Migration\

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

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         1         0         0         0
   Files :         3         0         3         0         0         0
   Bytes :         0         0         0         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00
   Ended : 25 July 2022 14:49:13

正如预期的那样,所有 3 个文件都被跳过了。为什么当我从网络文件夹复制它们时没有被跳过?

它们都有相同的名称、日期和大小: 在此处输入图片描述 d:\迁移

编辑文件比较和/FFT

根据@Paul的建议,我添加了/FFT开关,但它们仍然被识别并复制为*EXTRA File
结果如下:

Options : *.* /FFT /V /S /DCOPY:DA /COPY:DAT /R:1000000 /W:30

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

                           3    \\network\Document\Migration\
          *EXTRA File                  0        file 1.txt
          *EXTRA File                  0        file 2.txt
          *EXTRA File                  0        File 3.docx
            New File                   0        file 1.txt
            New File                   0        file 2.txt
            New File                   0        File 3.docx

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

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         1         0         0         0
   Files :         3         3         0         0         0         3
   Bytes :         0         0         0         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00

文件比较

使用 fc 我比较了文件内容,但所有 3 个文件都“未发现任何差异”

C:\Users\username>fc "\\network\Document\Migration\file 1.txt" "d:\migration\file 1.txt"
Comparing files \\NETWORK\DOCUMENT\MIGRATION\FILE 1.TXT and D:\MIGRATION\FILE 1.TXT
FC: no differences encountered

并使用 robocopy(来自这里)我只显示了文件元数据和名称:

robocopy "\\network\Document\Migration" d:\migration /l /ts /nc /ndl /njh /njs /FFT

                               0 2022/07/25 11:31:55    d:\migration\file 1.txt
                               0 2022/07/25 11:32:06    d:\migration\file 2.txt
                               0 2022/07/25 11:32:18    d:\migration\File 3.docx
                               0 2022/07/25 11:31:55    \\network\Document\Migration\file 1.txt
                               0 2022/07/25 11:32:06    \\network\Document\Migration\file 2.txt
                               0 2022/07/25 11:32:18    \\network\Document\Migration\File 3.docx

我找不到区别!(时间比我的 Windows 资源管理器上显示的时间少 2 小时,但这是一致的,所以我认为这不是一个相关的细节)。robocopy 显然认为它们是不同的,我不知道如何找出区别,也不知道为什么它会认为它们不相似。

当我在两个本地文件夹上执行相同的命令时,robocopy d:\migration d:\migration2 /l /ts /nc /ndl /njh /njs没有结果出现,这很好,因为没有代表/is包含相同的文件。“。即使没有/is,它也会在网络/本地文件夹命令上显示所有文件信息。它们对于 robocopy 不一样......但为什么呢?

编辑-/mir最后

因此,按照建议,我执行了以下命令,以/is确保只显示要复制的文件而不是全部文件。

robocopy "\\network\Document\Migration" d:\migration /l /ts /nc /ndl /njh /njs /FFT /mir

结果如下:


                               0 2022/07/25 11:31:55    d:\migration\file 1.txt
                               0 2022/07/25 11:32:06    d:\migration\file 2.txt
                               0 2022/07/25 11:32:18    d:\migration\File 3.docx
                               0 2022/07/25 11:31:55    \\network\Document\Migration\file 1.txt
                               0 2022/07/25 11:32:06    \\network\Document\Migration\file 2.txt
                               0 2022/07/25 11:32:18    \\network\Document\Migration\File 3.docx

/fft它与没有或完全相同/mir

答案1

这可能是由于两个系统之间的时间戳不一致造成的。您可以尝试添加 /FFT 标志,这会使 Robocopy 更具容忍度(它使用两秒的分辨率)。此外,您还可以添加 /V(详细)标志以获取有关正在发生的事情的更多信息。

相关内容