嘗試學習 Robocopy 的基本備份計劃,我在 bat 檔案中嘗試了以下操作:
@echo off
echo "Hello World!"
robocopy C:\Testfolder Z:\Testfolder
pause
其中 Z: 是網路磁碟機(連接到路由器 USB 連接埠的 USB 外部磁碟機)
C:\Testfolder 中只有兩個檔案 - 02.jpg 和 02-03.jpg。
我第一次運行它時,它在 Z: 上創建了 Testfolder 並複製了兩個圖像。
好奇會發生什麼,我再次運行它 - 這次,螢幕上的消息說它複製了 02.jpg,但跳過了 02-03.jpg。再次重新運行也是同樣的情況。
為什麼會這樣呢?
答案1
預設情況下,robocopy 僅複製它認為自上次運行以來已更改的檔案。您可以透過查看副本末尾的狀態來確認這一點。它應該顯示“跳過的文件為 1” /v
。
因為您正在複製到連接到路由器的基於網路的驅動器,所以很可能存在檔案時間錯誤,並導致 robocopy 在目標檔案之一上看到不同的日期和時間。檔案屬性問題在基於 Linux 的 samba 共享中很常見,例如您的路由器最有可能使用的檔案屬性問題。這可以解釋為什麼它會在沒有更改的情況下不斷重新複製一個檔案。您可以嘗試該/timfix
參數以查看它是否會更正文件上的時間並停止重新複製未更改的文件。
如果您希望 robocopy 複製相同且未更改的文件,請新增該/is
選項。
更多資訊請點這裡:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy