windows 系統的 A (Archive) 屬性旗標,是用來判斷哪些檔案或目錄需要備份
當檔案或目錄有新增或異動時,這個旗標會被設定,當檔案被備份後,該屬
性就會被移除。
如何判斷Archive屬性
可以利用 attrib c:\path\to\file 來判斷是否有 A 旗標,例如:
C:> attrib C:\AUTOEXEC.BAT
A C:\AUTOEXEC.BAT
也可以在檔案或目錄的進階屬性查看封存屬性,如下圖紅圈處:
利用 robocopy執行差異備份
全備份指令,複製之後移除 Archive 屬性
C:\> robocopy c:\source d:\destination\fullbackup\source /PURGE /E /M
差異備份指令,全備份後只要備份有 Archive 屬性的檔案,但備份後不移除 Archive 屬性,目的端的目錄可利用程式來處理要差異備份的天數
C:\> robocopy c:\source d:\destination\deffBackup_day1\source /PURGE /A /S
特別注意當來源和目的檔案相同時, robocopy 不會執行複製的動作,又
此時來源檔被設定 A 屬性,那每次執行全備份時,因 robocopy 不會真的
去複製到那個檔案,所以來源的 A 屬性並不會移除。
附註
windows 2003 以前版本的 windows ,可以到微軟下載
windows resource kit tools安裝,才有 robocopy 可用。
不好意思小弟提個意見,
回覆刪除您在全備份那邊的邏輯有點錯誤喔..
因為在全備份的時候,基本上應該是要備份【所有檔案】,
也就是說包括從未修改過(沒有A)以及修改過(有A)的檔案,
但是用 /M 只會備份有A的檔案,並在備份完的時候清除A,這樣的話,那些從未被修改過的檔案該怎辦呢? 也會變成從未被備份喔。