參考來源+引用: 【程式開發筆記】讓電腦定時幫你備份重要資料,「鏡像同步、差異備份」樣樣通,Robocopy - 大漠國渡
---
使用 Robocopy 進行「資料夾」鏡像同步
輸入「Robocopy <你的來源資料夾> <你的目的地資料夾> /mir /xo /e」
範例 : Robocopy D:\TEST D:\TEST2 /mir /xo /e
接下來將檔案儲存程「Windows 批次檔案 (.bat)」,「檔名」跟「路徑」就自己決定吧
// 第一種,會覆寫「目的地資料夾」安全性設定。
Robocopy <來源資料夾(檔案)> <目的地資料夾(檔案)> /mir /xo /e
// 第二種,不覆寫「目的地資料夾」安全性設定。
Robocopy <來源資料夾(檔案)> <目的地資料夾(檔案)> /e /xo /purge
「指令參數」說明
/e
複製子資料夾 (包含空的資料夾)
/xo
比較「來源檔案」與「目的地檔案」,若「來源檔案」較新則複製,否則排除不複製 (差異備份,所需參數)
/purge
刪除不存在於「來源資料夾」中的檔案 (差異備份,所需參數)
/mir
鏡像資料夾 (相當於同時使用 /e 和 /purge 參數)。
「進階指令」說明
Robocopy <來源資料夾(檔案)> <目的地資料夾(檔案)> /e /xo /mir /mt: /dcopy:dat /xa:sh /xj /unicode /eta /R:5 /W:30 /tee /unilog+:D:\mirrorDir.txt /v
「指令參數」說明
/mt:<n>
使用 n 個執行緒,執行工作。(如同 n 個人一起搬運檔案) 預設值是 8,最上值128。
需搭配使用 /log 參數,集中倒出,提升效能。
/log:<logfile>
使用系統編碼(Big5)寫入記錄檔。(若記錄檔已存在,覆寫現有的記錄檔)
/log+:<logfile>
使用系統編碼(Big5)寫入記錄檔。(若記錄檔已存在,接續寫入記錄檔)
/unilog:<logfile>
使用 UTF-8 編碼寫入記錄檔。(若記錄檔已存在,覆寫現有的記錄檔)
/unilog+:<logfile>
使用 UTF-8 編碼寫入記錄檔。(若記錄檔已存在,接續寫入記錄檔)
/dcopy:<copyflags>
複製資料夾的內容。
D - 資料
A - 屬性
T - 時間戳記
E - 擴充屬性
X - 略過替代資料流
此選項的預設值為 DA (資料和屬性)。
/xa:[RASHCNETO]
符合以下屬性的檔案不處理。
R - 唯讀
A - 封存
S - 系統
H - 隱藏
C - 已壓縮
N - 未編製內容索引
E - 已加密
T - 暫存
O - 離線
/xj
不複製 NTFS junction 檔案。
/unicode
輸出內容使用 UTF-8 編碼。
/eta
顯示所複製檔案的預估抵達時間 (ETA)。
/r:<n>
複製失敗,重新嘗試的次數,n 的預設值為 1,000,000 (一百萬次重試)。
/w:<n>
複製失敗,重新嘗試的等候時間,以秒為單位,n 的預設值為 30 (等待時間為 30 秒)。
/tee
將狀態輸出寫入主控台視窗及記錄檔。
/v
產生詳細資訊輸出,並顯示所有略過的檔案。
1. 「鏡像同步」最終指令
Robocopy <來源資料夾(檔案)> <目的地資料夾(檔案)> /e /xo /mir /mt: /dcopy:dat /xa:sh /xj /unicode /eta /R:5 /W:30 /tee /unilog+:D:\mirrorDir.txt /v /xf *.tmp *.ds_store *.temp ~desktop.ini ~hiberfil.sys ~pagefile.sys ~thumbs.db ~swapfile.sys ~NTUSER.DAT ~ntuser.dat.LOG1 ~ntuser.dat.LOG2 $recycle.bin config.msi ntuser.dat ntuser.ini /xd "C:\Windows" "C:\ProgramData\Microsoft\Windows\Caches" "C:\Drivers" "C:\Temp" "C:\Documents and Settings" "*MSOCache*" "*RecycleBin*" "*recycler*" "*System Volume Information*"
「指令參數」說明
/xf <filename>[ ...]
符合指定名稱或路徑的檔案,支援使用萬用字元 (* 和 ?)。
*.tmp
*.ds_store
*.temp
~desktop.ini
~hiberfil.sys
~pagefile.sys
~thumbs.db
~swapfile.sys
~NTUSER.DAT
~ntuser.dat.LOG1
~ntuser.dat.LOG2
$recycle.bin
config.msi
ntuser.dat
ntuser.ini
/xd <directory>[ ...]
排除符合指定名稱和路徑的目錄。
"C:\Windows"
"C:\ProgramData\Microsoft\Windows\Caches"
"C:\Drivers"
"C:\Temp"
"C:\Documents and Settings"
"*MSOCache*"
"*RecycleBin*"
"*recycler*"
"*System Volume Information*"