Robocopy - 記錄輸出時可能會出現問題?

Robocopy - 記錄輸出時可能會出現問題?

我正在評估 Robocopy 是否適合我的備份腳本,該腳本僅將較新的檔案從 C 磁碟機 (NTFS) 備份到 Pendrive (exFAT)。

我正在運行這個命令。它可以完成工作,但當目標是可移動 USB 隨身碟並且格式也為 exFAT 時,似乎記錄不正確。如果目標是 FAT 或 NTFS,則不會出現此問題。

robocopy C:\Temp\F1 D:\F1 /XO /E /FFT /LOG:C:\Temp\robo.txt /NP  /NDL /R:1 /W:3

在上面的命令中,D: 是隨身碟盤符,並且該命令或 .BAT 檔案始終在 Windows 7 Ultimate 64 上以管理員身份運行。

問題出現在案例 2 中,如下所述。

案例 1 - 請參閱日誌螢幕截圖。這看起來是正確的。所有複製的檔案名稱均被記錄,並且複製統計資料正確。 3 複製文件。

在此輸入影像描述

情況 2 - 我在來源中再新增一個檔案。現在它只複製這個新文件,但顯示日誌和統計資料中的所有文件都是錯誤的。它說複製了 4 個文件。

在此輸入影像描述

只有當目標是 exFAT 格式的隨身碟時,才會發生這種類型的不一致日誌記錄。 FAT 或 NTFS 沒有問題。

作業系統 - Windows 7 旗艦版 64。

問題。

  1. 當目標是 exFAT 筆式驅動器時,這是否是 Robocopy 日誌記錄中的一些問題或錯誤?
  2. 如果沒有,我是否在命令中缺少任何可以解決此問題的選項?

非常感謝對此的進一步澄清。


編輯

情況 3 - 沒有變化,仍然列出日誌檔案中的所有 4 個檔案。

在此輸入影像描述

/FFT 或不存在都不會更改日誌資料。

我使用免費文件同步進行了檢查,兩個目錄在文件大小、時間戳記和實際內容方面都處於同步狀態。我相信這不是複製,而是仍在記錄。

在此輸入影像描述


編輯2

我在原始程式碼中放置了 2 個大文件,總共 312 MB。然後複製到 USB 2 隨身碟目的地需要 42 秒。日誌沒問題。

在此輸入影像描述

現在我再次運行該命令。它在 0 秒內完成,但仍記錄 2 個文件,並且統計資料顯示已複製 2 個文件。我確信對於 USB 2.0 隨身碟上的 312MB 資料來說這是不可能的。

在此輸入影像描述

答案1

我的 Windows 7 上的 Robocopy 版本是6.1.7601.23403

Robocopy 的那個版本是 2009 年的。

我嘗試將 Robocopy 從 Windows 10 (64) PC 複製到我的 Windows 7 (64),但是當將命令放入 .BAT 時,它會出錯,指出它不是有效的 Win32 應用程序

不幸的是,Windows 7缺乏某些先決條件目前 Robocopy 可執行檔需要,因此不能簡單地從 Windows 10 系統複製最新的可執行檔:

即使從 Windows 8 進行複製也不起作用,因為底層元件必須支援它。

Robocopy 只是一個呼叫底層檔案系統元件的實用程式。

在此輸入影像描述

我無法在裝有最新版本 Robocopy 的 Windows 10 1903 系統上重現此問題。

毫無疑問,問題出在日誌上,而不是複製過程本身。其實是機器人複製正是它在這裡應該做的,它只是錯誤地報告了它。

我們在這裡看到的即時副本是不可能的。如果第一次將檔案從一個磁碟區複製到另一個磁碟區需要 42 秒,則相同的流程不能第二次用時0秒!

無論限制初始檔案複製速度的瓶頸是什麼,都會以完全相同的方式影響後續副本(即 USB 頻寬和快閃磁碟機寫入速度)。

這可以透過執行包含相對較大檔案的複製作業並觀察所需時間,然後從目標磁碟機刪除該大檔案並重新執行相同作業來輕鬆證明。後續副本跨越兩個不同的卷將花費大約相同的時間。

日誌差異:

  • 綠色=真。

  • 紅色=假。

在此輸入影像描述

只是為了澄清第一個綠色框中顯示的內容:我添加了“沒有 100% 新文件「行顯示日誌正確顯示空白的位置。有這些文件副本真的發生後,每個成功複製的檔案旁邊都會顯示「100%」和「新檔案」。

這些文件副本從未發生過。 OP 可以將 20 GB 的資料放入其中,而 Robocopy 仍然會報告瞬時傳輸!

結論:

OP 將無法升級其 Robocopy 版本,因為 Windows 7 無法使用比 2009 版本更新的任何內容。

他的直接選擇是使用 XCOPY 或其他一些檔案複製實用程式。

當OP最終升級到較新版本的Windows(例如Windows 10)時,他將擁有最新版本的Robocopy,其中這個舊錯誤已修補,並且該日誌記錄故障將不再發生。

答案2

眾所周知,Robocopy 在不同檔案系統之間傳輸檔案時會出現問題,例如,由於 NTFS 是 64 位元時間戳,ex fat 使用 3 個單獨的欄位來儲存時間戳,其中一個位元組是 UTC 時間的時區。

並且有一些示例摘要未顯示正確的信息例如這裡。我猜想匯總計算(粗略地說)沒有直接整合到複製過程中,因此存在某種錯誤。但我沒有找到任何“官方”文件來證實這一點。您可能還想驗證日誌或摘要哪一個實際上是正確的。

相關內容