如果你與 Windows,遲早你會需要 在磁碟或伺服器之間移動大量數據在這種情況下, 該 命令 XCOPY 和 ROBOCOPY 是兩把瑞士軍刀 基本要求:快速、靈活,旨在自動執行從一次性備份到計劃同步的所有操作。
在下面的幾行中,您將找到一個實用且非常完整的指南,以了解每個工具的功能, 什麼時候最好使用其中一個,以及如何透過正確的開關充分利用它們? 對於實際用例:複製資料夾結構、僅複製新檔案或修改過的檔案、安排複製視窗、監視變更、產生日誌等等。
Windows 中的 XCOPY 和 ROBOCOPY 是什麼?
XCOPY 和 ROBOCOPY 是 Windows 內建的命令列實用程序,用於複製檔案和目錄。 XCOPY 專注於複製多個檔案或整棵樹 (包括網路),具有比 COPY 更高級的功能。 ROBOCOPY(強健文件複製)更進一步: 它是一個強大的複製引擎,具有數十個參數 為 同步、鏡像、重試錯誤並記錄一切。
XCOPY 和 ROBOCOPY 之間的主要區別
最大的功能差異是鏡像: ROBOCOPY 可以「鏡像」(/MIR)目錄樹,在目標位置消除來源位置不再存在的內容;XCOPY 不會進行這樣的鏡像。
在自動化領域,ROBOCOPY 脫穎而出 /RH(運行時間)設定時間段 執行,這是 XCOPY 本身不具備的功能。這使得作業可以在非高峰時段啟動,而不依賴指令的時間。
在監控方面,ROBOCOPY 採用了 /MON:n 和 /MOT:m 監視變化:在 n 次修改後或每 m 分鐘偵測到新變更時進行複製。 XCOPY 沒有等價的監聽模式。
在屬性方面,兩者都處理 Archive 屬性,但是 ROBOCOPY 複製更多元資料(安全性、所有者、稽核、時間戳記) 使用 /COPY 和 /DCOPY。這在具有細粒度權限的 NTFS 環境中至關重要。
限制和重要考慮因素
XCOPY 和 ROBOCOPY 對於正在使用的文件沒有什麼魔力: 打開文件通常會給出 阻塞問題除非您使用快照服務或支援 VSS 的替代方案。在生產系統中請記住這一點。
XCOPY 不顯示詳細進度,可能比較簡單; 它不是備份“熱”操作系統卷的理想選擇。另一方面,ROBOCOPY 確實提供了更詳細和有用的退出代碼。
關於相容性,據報告,Windows Vista 之前的系統上 ROBOCOPY 的鏡像行為不理想; 在現代版本的 Windows 上它可以按預期工作。還記得 FAT 時間粒度:使用/FFT,我們假設精度為 2 秒。
如何逐步使用 XCOPY
一般形式為 XCOPY 源 目標 例如,要複製一個資料夾及其所有內容(包括隱藏和空的子資料夾),並在出現錯誤時繼續,您可以使用:
XCOPY C:\test D:\test /E /H /C /I
這些開關的含義: /E (子目錄,包括空的), /H (隱藏檔案和系統檔案), /C (即使有錯誤也繼續)和 /I (如果有疑問,請將目的地視為目錄)。 它們是批量複製的基礎 沒有愚蠢的干擾。
黃金提示:如果路線上有空位, 用引號引起來例如 "D:\Mis Datos". 您將避免因 shell 解析而導致的錯誤。
如何逐步使用 Robocopy
基本語法是 ROBOCOPY 源 目標 。要將特定檔案從一個資料夾複製到另一個資料夾,一個簡單的範例是:
robocopy E:\backuptest F:\backuptest1 a-test.docx b-test.txt
要製作“智慧”副本,您可以添加 /XO (不包括老年人)或 /米爾 (鏡像,相當於/E + /PURGE)。 這是兩種常見的增量/同步模式 根據所需的策略。
結合多執行緒和網路中斷復原的實際範例: 提高性能和彈性 同 /MT y /Z 複製到共享:
robocopy C:\reports \\marketing\videos yearly-report.mov /mt /z
別忘了註冊: 保留日誌以供審計和驗證 稍後。例如: /LOG:C:\Logs\Backup.log 或使用 Unicode /UNILOG.
僅複製新的或修改過的文件
有兩種經典方法: 帶有 /D 和變體的 XCOPY,而 Robocopy 帶有日期/年齡或排除過濾器. 選擇是否允許目標中的新檔案或僅更新現有檔案。
使用 XCOPY 時,相關語法是 /D。無日期,複製比目的地更新的內容。您可以結合 /U 僅複製目標上已存在的檔案(不建立新檔案), /S 對於子資料夾和 /Y 以避免在覆蓋時詢問。
XCOPY 的典型場景(調整路徑並在必要時使用引號): 它們的範圍從僅更新現有目錄到引入新目錄。.
- 更新最新 (如果不存在,您可以建立新的):
xcopy "D:\Source" "K:\Target" /S /D - 更新而不建立新目錄:
xcopy "D:\Source" "K:\Target" /I /D /Y - 僅當目標已存在時才更新:
xcopy "D:\Source" "K:\Target" /S /D /U - 也帶來新的目錄:
xcopy "D:\Source\copy files" "K:\Target\files copiados" /I /D /Y /E
對於 ROBOCOPY,有兩種常見的技術: 使用 /MAXAGE:n 依年齡過濾 (n 天)和/或 使用 /XO 排除較舊的。為了避免空目錄,請添加 /S. 這就是實現簡單增量的方法 沒有並發症。
- 複製最新或新增的:
robocopy D:\folder1 E:\folder2 /MAXAGE:7orobocopy D:\folder1 E:\folder2 /XO /MAXAGE:7 - 沒有空資料夾: 添加
/S以上任何一項
非常具體的情況?也許你想 僅複製已變更的內容,但不建立新的內容 (根據管理員的要求,比較配置變更)。使用 ROBOCOPY 您可以使用 /加大碼 排除「孤立」檔案(存在於來源但不在目標中)並讓它僅複製不同的檔案: robocopy "C:\Origen" "D:\Destino" /S /XL. 這是現有模組的更新方式 並且沒有新增文件。
鏡像與同步:/MIR、/PURGE 及注意事項
ROBOCOPY 的鏡像模式, /MIR,在目的地複製並刪除 來源中缺少的任何內容(相當於 /E + /PURGE)。這對於乾淨的部署很有用,但如果目標錯誤,則很危險: 如果選擇了錯誤的目的地,您可能會刪除資料。 你不想碰它。
如果您只是想清理剩余文件, /清除 足夠;/MIR 也保護整個結構(包括空的結構)。 選出最適合的一對 與您的同步策略。
使用 XCOPY 僅複製資料夾結構
當你需要複製沒有檔案的層次結構時,XCOPY 可以使用以下方法解決 /T (僅限結構)和 /E (包括空的子資料夾)。非常適合在新環境中準備腳手架。
例如: XCOPY "C:\Users\Default\Carpeta de pruebas" "D:\Pruebas" /T /E. 第一條路線是要複製其結構的源;第二,您將建立相同層次結構的目的地。
從 CMD 複製的四種方法
喜歡遊戲機的人可以透過這些選項滿足幾乎任何需求。 根據它們是單一檔案、結構還是需要係統映像來選擇。:
- 1)ROBOCOPY:推薦用於大型、穩健備份的指令,包含 80 多個參數和開關。非常適合大型網路共享。 自動重試和詳細日誌.
- 2)XCOPY:檔案和目錄的經典行,帶有有用的開關,例如 /D、/E、/H、/C. 簡單且足以滿足許多基本批次的需求。
- 3)記事本:在恢復環境中,啟動
notepad.exe從 CMD,使用文件 > 另存為進行導航和 複製到 USB 使用“發送至”。當系統無法啟動並且您想要保存檔案而又不想費力地使用命令時,這是一個有用的技巧。 - 4)EaseUS Todo 備份 (CLI):對於分割區、磁碟和系統,您的命令
etbcmd允許 完整、差異和增量備份,甚至網路路由,並且還具有 GUI。
AOMEI Backupper:同步和備份的圖形替代方案
如果您喜歡圖形介面和進階選項而不需要記住開關, AOMEI Backupper 是一個非常完整的替代方案 到XCOPY/ROBOCOPY進行同步和備份。
其功能包括: 與 USB、NAS、網路或雲端同步;單向、雙向、鏡像和即時同步(後三種為付費版本); 自動編程 並且能夠複製開啟的文件而不阻礙工作。
基本同步快速入門指南:安裝並打開,前往 同步 > 基本同步,選擇來源資料夾,選擇目標(外部磁碟、網路、雲端...),並根據需要安排 每天、每週或每月您可以新增註釋並啟動電子郵件通知。
它還允許 檔案備份 (影像壓縮)、恢復和克隆以及其他實用程式。如果您使用他們的雲端服務,註冊後他們會提供 1 TB 試用 15 天 用於雲端備份。
Robocopy 深度解析:井然有序的主要選項
為了充分利用它,這裡是最相關的參數類別。 所有人也都諮詢過“robocopy /?” 如果您想擴展詳細信息,請在 CMD 中。
複製選項
- /S:子目錄(不包括空的)。 /E:清空包含的子目錄。
- /Z:可重啟模式。 /B:備份模式。 /ZB:可重新啟動,如果失敗,則前往備份。
- /J:無緩衝 I/O(建議用於大檔案)。 /EFSRAW:以原始模式複製加密檔案。
- /複製::要複製哪些屬性(資料、屬性、時間、ACL、所有者、稽核; 預設 DAT).
- /DCOPY::要複製到目錄中的內容(預設 DA)。
- /秒 (= /COPY:DATS), /全部複製 (= DATSOU), /NOCOPY (與 /PURGE 一起使用) /SECFIX, /TIMFIX.
- /清除:在目標處刪除來源處缺失的內容。 /米爾:鏡子(= /E + /PURGE)。
- /MOV:移動文件。 /移動:移動檔案和目錄。
- /A+: y /到-::複製時新增或刪除屬性。
- /創造:建立零長度樹和檔案。 /胖的:名稱 8.3。 / 256: : 停用路線 > 256。
- /MON:n, /MOT:米:監控變化。 /RH:小時-小時:時間窗口。 /PF:透過文件檢查。
- /IPG:n:間隔開資料包(慢速線路)。 /SJ//SL:具有符號連結的行為。
- /MT:n:多執行緒(1-128,預設 8)。與 /IPG 或 /EFSRAW 不相容。 大大提高性能.
- /NODCOPY, /NOOFFLOAD, /壓縮, /SPARSE:y|n, /NOCLONE:進階影印設定。
- /IOMAXSIZE, /IORATE, /臨界點:I/O 和頻寬限制(最低 524.288 位元組/秒)。
文件選擇
- /A:僅具有檔案屬性。 /M:複製後歸檔清理。
- /IA: e /為了::按屬性包含/排除。
- /XF 名字, /XD 目錄:依模式排除(通配符 * 和 ?)。
- /XC:排除時間戳相同但大小不同的。 /XN:不包括目的地較新的商品。 /XO:不包括較舊的。
- /XX:不包括目的地的額外內容(不刪除)。 /加大碼:不包括“單獨的”(僅在起源中)。
- /即時通訊:包括修改(更改時間)。 /ES:包括等於。 /物品:包括“修飾”(屬性)。
- /MAX:n, /分鐘:n:尺寸限制。 /MAXAGE:n, /MINAGE:n:依年齡或日期限制。
- /MAXLAD, /明拉德:最後造訪(如果 n < 1900,則為天數;否則為 YYYYMMDD)。
- /XJ, /XJD, /XJF:排除連接點。 /快速傅立葉變換:FAT時間(2秒)。 /夏令時:調整夏令時。
重試
- /R:n:重試次數(預設 1.000.000)。 /W:n:重試之間等待的時間(預設 30 秒)。 /註冊:儲存為預設值。
- /待定:等待共享名稱被定義(錯誤 67)。 /LFSM:低空間模式,根據音量“地板”暫停和恢復。
日誌記錄
- /L:僅列出(不複製/刪除/註明日期)。 /V:詳細輸出。 /TS:時間戳。 /FP:完整路線。 /位元組:以位元組為單位的大小。
- /NS, /CNC, /NFL, /NDL, /NP:調整詳細程度(無大小、類別、名稱、進度…)。 /預計到達時間:預計時間。
- /記錄檔, /LOG+:文件, /UNILOG:文件, /UNILOG+:文件, /球座, /紐澤西, /紐澤西, /UNICODE:完全控制日誌。
作品
- /JOB:名稱, /保存:名稱:儲存/載入「作業」的參數。 /辭職:處理完行後退出(請參閱參數)。
- /NOSD//點頭:沒有出發地/目的地。 /如果:包含指定檔案。
官方補充說明: /MIR 和 /PURGE 不再觸及系統磁碟區訊息 在根中;「修改排序」需要支援更改時間的檔案系統; /DCOPY:E 嘗試將擴充屬性複製到目錄中;可以調整節流參數,並且系統可以強制執行有效限制; /LFSM 如果您沒有給出值,則將下限設為音量的 10%,並且它與 /MT 和 /EFSRAW 不相容。
退出代碼
- 0:沒有複製文件,沒有錯誤。
- 1::全部複製正確。
- 2:目標位置有多餘的文件,它們未被複製。
- 3:有抄襲的,有多餘的,沒有錯誤。
- 5:有些是複製的,有些是不匹配的,沒有錯誤。
- 6:多餘的且不匹配;沒有複製,沒有錯誤。
- 7:有些內容被複製,有匹配錯誤和額外內容。
- 8: : 有幾個文件未複製。
有用的例子
- 複製所有(包括空的)並重新啟動並記錄:
robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log - 鏡像重試次數少,等待時間短:
robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log - 複製子資料夾並使用 16 個執行緒儲存 DAT:
robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log - 除上述情況外,將有效期限改為 7 天:
robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log - 預計到達時間並清理剩餘食物:
robocopy C:\Users\Admin\Records D:\Backup /ETA /PURGE /LOG:C:\Logs\Backup.log - 將 I/O 限制為 1 MB/s:
robocopy C:\Records D:\Backup /iorate:1m - 如果內容已經存在,則不要複製(無論日期如何):
robocopy C:\Source C:\Destination /XC /XN /XO
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。