Robocopy 備份完整教學:指令、NAS、LOG 與 /MIR 參數解析

Robocopy 備份是 Windows 系統中非常實用的檔案複製與資料備份方式。Robocopy(Robust File Copy)是 Windows 內建的命令列工具,可以用於本機資料備份、外接硬碟備份、伺服器資料同步以及 NAS 備份。

相較於單純使用 Windows 檔案總管拖曳檔案,Robocopy 可以透過參數控制資料夾遞迴、檔案同步、重試次數、等待時間、權限複製與 LOG 記錄,非常適合系統管理員與 IT 維護人員建立自動化備份工作。

本文將從 Robocopy 備份的基本語法開始,逐步介紹 /E、/MIR、/COPY:DAT、/COPYALL、/XJ、/LOG、/TEE 等常用參數,並提供 Windows 本機、外接硬碟與 NAS 的實際備份案例。

一、Robocopy 備份基本語法

Robocopy 的基本語法可以理解為「來源 → 目的地 → 參數」。最基本的形式如下:

robocopy <來源資料夾> <目的資料夾> [參數]

例如,要將 D 槽的 Data 資料夾備份到 E 槽的 Backup:

robocopy D:\Data E:\Backup /E

執行後,Robocopy 會掃描來源資料夾,建立目的端需要的資料夾結構,並複製符合條件的檔案。再次執行相同指令時,Robocopy 會比較來源與目的端的檔案狀態,通常只處理需要更新的資料,因此非常適合定期執行的備份工作。

二、Robocopy 常用參數解析

Robocopy 真正強大的地方在於大量參數。不同參數會直接影響備份結果,因此建立正式的 Robocopy 備份工作前,應先了解各參數的用途。

參數 用途 注意事項
/E 複製所有子資料夾,包含空資料夾 適合完整資料夾備份
/MIR 建立來源與目的端鏡像 可能刪除目的端多餘檔案
/COPY:DAT 複製資料、屬性與時間 跨設備備份常用
/COPYALL 複製完整檔案資訊 包含 NTFS ACL 等安全性資訊
/DCOPY:DAT 複製資料夾的資料、屬性與時間 適合保留資料夾時間資訊
/XJ 排除 Junction 可降低非預期目錄遞迴風險
/R:n 設定失敗後重試次數 建議不要使用過大的數值
/W:n 設定重試等待秒數 與 /R 搭配使用
/LOG 輸出備份 LOG 適合正式備份
/LOG+ 追加 LOG 不覆蓋原有紀錄
/TEE 畫面與 LOG 同時輸出 適合測試與排錯

/E:完整複製子資料夾

/E 會複製所有子資料夾,包括空資料夾。如果目的是建立完整資料夾結構,通常會使用 /E。

robocopy D:\Data E:\Backup /E

/COPY:DAT:跨設備備份常用設定

/COPY:DAT 代表複製 Data、Attributes、Time,也就是檔案資料、屬性與時間資訊。當目的端不是另一個具有完整 NTFS 安全性結構的 Windows NTFS 磁碟時,這種方式通常比複製完整 NTFS 安全性資訊更容易管理。

robocopy D:\Data E:\Backup /E /COPY:DAT

/COPYALL:完整複製檔案資訊

/COPYALL 等同於複製 DATSOU 等完整檔案資訊,其中包含資料、屬性、時間、NTFS ACL、Owner 與 Audit 等資訊。

如果目的端是 Windows NTFS 環境,而且需要保留原有的安全性資訊,可以考慮使用 /COPYALL。但如果目的端是 NAS 或其他檔案系統,必須先確認是否支援這些 Windows 安全性資訊,否則可能產生權限錯誤。

/XJ:排除 Junction

Windows 系統中可能存在 Junction 或其他重新導向的目錄結構。使用 /XJ 可以排除 Junction,降低複製過程進入非預期目錄結構的風險。

robocopy D:\Data E:\Backup /E /XJ

三、Robocopy 本機與外接硬碟備份

最常見的 Robocopy 備份情境,就是將電腦內部資料備份到第二顆硬碟或 USB 外接硬碟。

案例一:本機資料備份

robocopy D:\Data E:\Backup /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ

這條指令可以解讀為:

  • /E:複製所有子資料夾與空資料夾
  • /COPY:DAT:複製資料、屬性與時間
  • /DCOPY:DAT:保留資料夾相關資訊
  • /R:2:失敗時最多重試 2 次
  • /W:5:每次重試等待 5 秒
  • /XJ:排除 Junction

這種設定適合日常資料備份,尤其是文件、照片、工程資料與工作檔案等。

案例二:外接硬碟備份

robocopy C:\Users\Public E:\Backup\Public /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ

如果 E 槽是 USB 外接硬碟,建議先確認磁碟機代號是否固定。若磁碟機代號經常改變,可以改用磁碟區名稱或其他更穩定的管理方式,避免排程執行時備份到錯誤磁碟。

四、Robocopy NAS 備份實戰

Robocopy 也非常適合將 Windows 電腦資料備份到 NAS。Windows 通常透過 SMB 連接 NAS 共用資料夾,再使用 Robocopy 執行檔案複製。

案例三:使用網路磁碟機備份 NAS

net use T: \\192.168.1.10\backup /user:admin password

robocopy D:\Data T:\Backup /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ

第一行使用 net use 建立 SMB 網路磁碟機,將 NAS 的共用資料夾掛載成 T 槽。第二行再利用 Robocopy 將 D:\Data 備份至 NAS。

⚠️ 安全提醒:
正式環境不建議直接把 NAS 密碼明文寫在批次檔中。若使用排程備份,應考慮 Windows 認證管理、受限權限帳號或其他安全的認證方式。

NAS 為什麼不一定適合使用 /COPYALL?

NAS 的檔案系統與 Windows NTFS 並不一定完全相同。當 Robocopy 使用 /COPYALL 時,除了檔案資料之外,也可能嘗試寫入 Windows NTFS ACL、Owner 與 Audit 等資訊。

如果 NAS 或 SMB 服務端無法完整對應這些資訊,就可能出現 Access Denied 或其他權限錯誤。因此 NAS 備份通常應依照實際環境選擇適合的複製模式,而不是看到 /COPYALL 就直接使用。

如果你需要 Linux 環境的檔案同步與網站搬移,也可以參考:

Linux 網站搬家完整教學|SCP / RSYNC 傳輸與備份實戰(2026)

五、Robocopy /MIR 鏡像同步與刪除風險

/MIR 是 Robocopy 非常強大的參數,可以建立來源與目的端的鏡像結構。它相當於使用 /E 搭配目的端多餘檔案與資料夾的刪除行為。

robocopy D:\Data E:\Backup /MIR /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ

例如來源端有:

D:\Data
 ├── A.txt
 ├── B.txt
 └── C.txt

如果目的端原本還有一個來源不存在的 old.txt,執行 /MIR 後,Robocopy 可能會將目的端的 old.txt 刪除,使兩邊維持鏡像狀態。

⚠️ /MIR 重要警告
/MIR 不只是「備份」,而是「鏡像同步」。如果來源端檔案被刪除,目的端對應檔案也可能被刪除。因此不要在沒有確認來源與目的路徑的情況下直接使用 /MIR。

正式使用 /MIR 前先測試

第一次使用 /MIR 時,建議先使用 /L 進行模擬,不實際複製或刪除資料。

robocopy D:\Data E:\Backup /MIR /L

確認 LOG 或畫面中的檔案清單沒有問題後,再移除 /L 執行正式同步。這是使用 /MIR 時非常重要的安全檢查步驟。

六、Robocopy LOG 排錯與錯誤分析

Robocopy 備份如果要用於正式環境,建議加入 LOG。LOG 可以協助管理員確認哪些檔案成功、哪些檔案被跳過,以及是否出現權限、網路或檔案存取錯誤。

案例四:建立完整備份 LOG

mkdir C:\robocopy_log

robocopy D:\Data E:\Backup /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /TEE /LOG+:C:\robocopy_log\backup.log

這條指令會將 Robocopy 執行過程同時顯示在畫面上,並追加寫入 backup.log。

  • /LOG+:追加 LOG,不覆蓋原本紀錄
  • /TEE:畫面與 LOG 同時輸出
  • /R:2:錯誤時最多重試 2 次
  • /W:5:每次重試等待 5 秒

常見 LOG 關鍵字

訊息 可能原因
ERROR 5 Access Denied,可能與權限或認證有關
RETRY 檔案複製失敗,Robocopy 正在重新嘗試
SKIPPED 檔案符合條件而被跳過
Access Denied 目前帳號無法存取來源或目的資料

七、Robocopy Exit Code 判讀

很多人看到 Robocopy 執行完成後不是顯示 0,就認為備份失敗,其實 Robocopy 使用 Exit Code 表示不同的執行結果,因此不能單純把「非 0」視為錯誤。

Exit Code 一般意義
0 沒有需要複製的檔案,來源與目的端已相同
1 有檔案成功複製
2 目的端存在額外檔案或資料夾
3 同時存在額外項目與成功複製
8 以上 通常表示有一個以上複製失敗,應進一步檢查 LOG

因此建立 Windows 工作排程時,不建議只用「Exit Code 不等於 0」判定備份失敗,而應依照 Robocopy 的 Exit Code 定義建立適合的判斷條件。

八、Robocopy 備份實務建議

如果 Robocopy 是要真正使用在企業或工作環境,建議不要只建立一條複製指令就結束。完整的 Robocopy 備份應該同時考慮資料、權限、LOG、排程與還原測試。

  • ✔ 先確認來源與目的端路徑
  • ✔ 正式使用 /MIR 前先使用 /L 測試
  • ✔ NAS 備份先確認 SMB 權限
  • ✔ 跨設備備份不要盲目使用 /COPYALL
  • ✔ 正式環境加入 /LOG+ 保留執行紀錄
  • ✔ /R 與 /W 不要設定過大的數值
  • ✔ 重要資料應建立多份備份
  • ✔ 定期測試備份資料是否真的可以還原
Robocopy 備份推薦基本範例:
robocopy D:\Data E:\Backup /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ /TEE /LOG+:C:\robocopy_log\backup.log

這個範例適合做為一般 Windows 資料備份的起點。如果是 NAS、系統映像、權限保留或鏡像同步等特殊情境,則應依照實際需求調整參數。

延伸閱讀

FAQ 常見問題

Robocopy 備份適合拿來備份 NAS 嗎?

可以。Robocopy 可以透過 SMB 存取 NAS 共用資料夾,適合進行 Windows 電腦到 NAS 的檔案備份。不過應依照 NAS 的檔案系統與權限支援情況選擇適合的 COPY 參數。

Robocopy /MIR 會刪除檔案嗎?

會。/MIR 是鏡像同步模式,目的端可能刪除來源端不存在的檔案與資料夾。因此第一次使用前建議搭配 /L 模擬執行,確認結果後再正式執行。

/COPYALL 和 /COPY:DAT 有什麼差異?

/COPY:DAT 主要複製資料、屬性與時間;/COPYALL 則會進一步複製 NTFS ACL、Owner、Audit 等資訊。跨設備或 NAS 備份時,應先確認目的端是否支援這些 Windows 安全性資訊。

Robocopy 的 /XJ 有什麼作用?

/XJ 用來排除 Junction。Windows 某些資料夾結構可能包含 Junction,排除後可以降低複製時進入非預期目錄結構的風險。

Robocopy Exit Code 1 是不是代表備份失敗?

不是。Robocopy 的 Exit Code 1 通常代表有檔案成功複製。Exit Code 必須依照 Robocopy 的定義判讀,不能簡單把所有非 0 的結果都視為失敗。

Robocopy 可以取代 Windows 完整系統備份嗎?

不建議。Robocopy 主要是檔案與資料夾複製工具,適合資料備份與同步,但不能直接等同於完整系統映像或完整災難復原方案。

Robocopy 備份需要建立 LOG 嗎?

如果是正式環境或排程備份,強烈建議建立 LOG。LOG 可以協助確認備份結果、找出 Access Denied、RETRY 等問題,也方便日後追蹤與稽核。

本文重點整理

  • Robocopy 備份適合 Windows 檔案與資料夾備份。
  • /E 適合完整複製子資料夾。
  • /COPY:DAT 適合許多一般跨設備備份情境。
  • /COPYALL 使用前必須確認目的端是否支援 NTFS 安全性資訊。
  • /MIR 具備鏡像刪除行為,使用前務必測試。
  • /XJ 可以降低 Junction 造成非預期複製的風險。
  • /LOG+ 適合建立長期備份紀錄。
  • 重要資料除了備份之外,也必須定期進行還原測試。