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 時,建議先使用 /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 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+ 適合建立長期備份紀錄。
- 重要資料除了備份之外,也必須定期進行還原測試。
