我正在評估 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。
問題。
- 當目標是 exFAT 筆式驅動器時,這是否是 Robocopy 日誌記錄中的一些問題或錯誤?
- 如果沒有,我是否在命令中缺少任何可以解決此問題的選項?
非常感謝對此的進一步澄清。
編輯
情況 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 時間的時區。
並且有一些示例摘要未顯示正確的信息例如這裡。我猜想匯總計算(粗略地說)沒有直接整合到複製過程中,因此存在某種錯誤。但我沒有找到任何“官方”文件來證實這一點。您可能還想驗證日誌或摘要哪一個實際上是正確的。