robocopy

將資料從一個位置複製到另一個。

語法

robocopy <source> <destination> [<file>[ ...]] [<options>]

例如,若要將名為 yearly-report.mov 的檔案從 c:\reports 複製到檔案共用 \\marketing\videos,同時啟用高效能的多執行緒處理 (使用 /mt 參數),以及在中斷時重新啟動傳輸的能力 (使用 /z 參數),請輸入:

robocopy c:\reports "\\marketing\videos" yearly-report.mov /mt /z

重要

如果從裝置的根目錄複製任何資料,目的地目錄會在複製程序期間採用「隱藏」屬性。

參數

參數 描述
<source> 指定來源目錄的路徑。
<destination> 指定目的地目錄的路徑。
<file> 會指定要複製的一個或多個檔案。 支援使用萬用字元 (*?)。 如果未指定此參數,則會將 *.* 用作為預設值。
<options> 指定要搭配 robocopy 命令使用的選項,包括 copyfileretryloggingjob 選項。

Copy 選項

選項 描述
/s 複製子目錄。 這個選項會自動排除空白目錄。
/e 複製子目錄。 這個選項會自動包含空白目錄。
/lev:<n> 只複製來源目錄樹狀結構的前 n 個層級。
/z 在可重新啟動模式中複製檔案。 在可重新啟動模式中,如果檔案複製遭到中斷,robocopy 可以挑選從離開的位置繼續,而不是重新複製整個檔案。
/b 在備份模式中複製檔案。 在備份模式中,robocopy 會覆寫檔案和資料夾權限設定 (ACL),否則可能會封鎖存取。
/zb 在可重新啟動模式中複製檔案。 如果檔案存取遭拒,請切換至備份模式。
/j 使用未緩衝的 I/O 複製 (建議用於大型檔案)。
/efsraw 在 EFS RAW 模式中複製所有加密檔案。
/copy:<copyflags> 指定要複製的檔案屬性。 這個選項的有效值為:
  • D - 資料
  • A - 屬性
  • T - 時間戳記
  • X - 略過替代資料流
  • S - NTFS 存取控制清單 (ACL)
  • O - 擁有者資訊
  • U - 稽核資訊
/COPY 選項的預設值是 DAT (資料、屬性和時間戳記)。 如果使用 /B/ZB,則會忽略 X 旗標。
/dcopy:<copyflags> 指定要在目錄中複製的內容。 這個選項的有效值為:
  • D - 資料
  • A - 屬性
  • T - 時間戳記
  • E - 擴充屬性
  • X - 略過替代資料流
此選項的預設值為 DA (資料和屬性)。
/sec 複製具有安全性的檔案 (相當於 /copy:DATS)。
/copyall 複製所有檔案資訊 (相當於 /copy:DATSOU)。
/nocopy 不複製任何檔案資訊 (適用於 /purge)。
/secfix 修正所有檔案的檔案安全性,甚至略過的檔案。
/timfix 修正所有檔案的檔案時間,甚至略過的檔案。
/purge 刪除來源中已不存在的目的地檔案和目錄。 使用此選項搭配 /e 選項和目的地目錄,可允許不覆寫目的地目錄安全性設定。
/mir 鏡像目錄樹狀目錄 (相當於 /e 加上 /purge)。 使用此選項搭配 /e 選項和目的地目錄,會覆寫目的地目錄安全性設定。
/mov 移動檔案,並在複製檔案之後將其從來源刪除。
/move 移動檔案和目錄,並在複製檔案之後將其從來源刪除。
/a+:[RASHCNET] 將指定的屬性加入至複製的檔案。 這個選項的有效值為:
  • R - 唯讀
  • A - 封存
  • S - 系統
  • H - 隱藏
  • C - 已壓縮
  • N - 未編製內容索引
  • E - 已加密
  • T - 暫存
/a-:[RASHCNETO] 從複製的檔案中刪除指定的屬性。 這個選項的有效值為:
  • R - 唯讀
  • A - 封存
  • S - 系統
  • H - 隱藏
  • C - 已壓縮
  • N - 未編製內容索引
  • E - 已加密
  • T - 暫存
  • O - 離線
/create 只建立目錄樹狀目錄和長度為零的檔案。
/fat 僅使用 8.3 個字元長度的 FAT 檔名來建立目的地檔案。
/256 關閉超過 256 個字元的路徑支援。
/mon:<n> 監視來源,並在偵測到超過 n 項變更時再次執行。
/mot:<m> 監視來源,並在偵測到變更時以 m 分鐘為單位再次執行。
/rh:hhmm-hhmm 指定可以啟動新複製時的執行時間。
/pf 依照每個檔案 (而非每次傳遞) 檢查執行時間。
/ipg:<n> 指定封包間差距,以在慢速線路上釋放頻寬。
/sj 將接合 (軟連結) 複製到目的地路徑,而不是連結目標。
/sl 不要遵循符號連結,而是建立連結的複本。
/mt:<n> 使用 n 個執行緒建立多執行緒複本。 n 必須是介於 1 到 128 之間的整數。 n 的預設值是 8。 為了提升效能,請使用 /log 選項將您的輸出重新導向。

/mt 參數不能與 /ipg/efsraw 參數搭配使用。

/nodcopy 不複製任何目錄資訊 (完成預設 /dcopy:DA)。
/nooffload 複製檔案而不使用 Windows 複製卸載機制。
/compress 在檔案傳輸期間要求網路壓縮 (如適用)。
/sparse 啟用在複製期間保留檔案的疏鬆狀態。

重要

使用 /secfix copy 選項時,請使用下列其中一個額外的複製選項,指定您想要複製的安全性資訊類型:

  • /copyall
  • /copy:o
  • /copy:s
  • /copy:u
  • /sec

注意

/mt 參數是在 Windows Server 2008 R2 中引進的,其功能適用於目前的 Windows Server 版本。

複製檔案節流選項

選項 描述
/iomaxsize:<n>[kmg] 每個讀取/寫入週期所要求的最大 i/o 大小上限,以 nkb、mb 或 gb為單位。
/iorate:<n>[kmg] 要求的 i/o 速率,以每秒 nkb、mb 或 gb 為單位。
/threshold:<n>[kmg] 節流的檔案大小臨界值,以 nkb、mb 或 gb (請參閱備註)。

這些節流選項可用來指定 Robocopy 允許的最大 I/O 頻寬,以每秒位元組為單位。 如果未以每秒位元組為單位指定,則可以在指定 kmg 時使用整數。 即使指定較小的值,節流的最小 I/O 頻寬仍是 524288 位元組。

檔案選取選項

選項 描述
/a 只複製已設定 Archive 屬性的檔案。
/m 只複製已設定 Archive 屬性的檔案,並重設 Archive 屬性。
/ia:[RASHCNETO] 只包含已設定任何指定屬性的檔案。 這個選項的有效值為:
  • R - 唯讀
  • A - 封存
  • S - 系統
  • H - 隱藏
  • C - 已壓縮
  • N - 未編製內容索引
  • E - 已加密
  • T - 暫存
  • O - 離線
/xa:[RASHCNETO] 排除已設定任何指定屬性的檔案。 這個選項的有效值為:
  • R - 唯讀
  • A - 封存
  • S - 系統
  • H - 隱藏
  • C - 已壓縮
  • N - 未編製內容索引
  • E - 已加密
  • T - 暫存
  • O - 離線
/xf <filename>[ ...] 排除符合指定名稱或路徑的檔案。 支援使用萬用字元 (*?)。
/xd <directory>[ ...] 排除符合指定名稱和路徑的目錄。
/xc 排除具有相同時間戳記但不同檔案大小的現有檔案。
/xn 來源目錄檔案比目的地還新的檔案會從複製中排除。
/xo 來源目錄檔案比目的地還舊的檔案會從複製中排除。
/xx 排除存在於目的地但不在來源中的額外檔案和目錄。 排除額外的檔案不會從目的地刪除檔案。
/xl 排除存在於來源但不在目的地中的「孤獨」檔案和目錄。 排除孤獨的檔案可防止任何新檔案新增至目的地。
/im 包含修改過的檔案 (不同變更時間)。
/is 包含相同的檔案。 相同的檔案名稱、大小、時間和所有屬性都相同。
/it 包含「已調整」的檔案。 調整的檔案具有相同的名稱、大小和時間,但有不同的屬性。
/max:<n> 指定檔案大小上限 (以排除大於 n 個位元組的檔案)。
/min:<n> 指定檔案大小下限 (以排除小於 n 個位元組的檔案)。
/maxage:<n> 指定檔案存留期上限 (以排除早於 n 天或日期的檔案)。
/minage:<n> 指定最小檔案存留期 (排除晚於 n 天或日期的檔案)。
/maxlad:<n> 指定上次存取日期上限 (排除自 n 以來未使用的檔案)。
/minlad:<n> 指定上次存取日期下限 (排除自 n 以來使用的檔案),如果 n 小於 1900,n 會指定天數。 否則,nn 會以 YYYYMMDD 格式指定日期。
/xj 排除一般預設包含的接合點。
/fft 假設 FAT 檔案時間 (兩秒精確度)。
/dst 補償一小時的 DST 時間差異。
/xjd 排除目錄的接合點。
/xjf 排除檔案的接合點。

重試選項

選項 描述
/r:<n> 指定失敗複製的重試次數。 n 的預設值為 1,000,000 (一百萬次重試)。
/w:<n> 指定重試之間的等候時間,以秒為單位。 n 的預設值為 30 (等待時間為 30 秒)。
/reg /r/w 選項中指定的值儲存為登錄中的預設設定。
/tbd 指定系統等候定義共用名稱 (重試錯誤 67)。
/lfsm 在低可用空間模式中運作,可啟用複製、暫停和繼續 (請參閱備註)。
/lfsm:<n>[kmg] 以 nkb、mb 或 gb 為單位指定大小下限。

記錄選項

選項 描述
/l 指定只列出檔案 (而不複製、刪除或加上時間戳記)。
/x 報告所有額外的檔案,而不只是選取的檔案。
/v 產生詳細資訊輸出,並顯示所有略過的檔案。
/ts 在輸出中包含來源檔案時間戳記。
/fp 在輸出中包含檔案的完整路徑名稱。
/bytes 將大小列印為位元組。
/ns 指定不記錄檔案大小。
/nc 指定不記錄檔案類別。
/nfl 指定不記錄檔案名稱。
/ndl 指定不記錄目錄名稱。
/np 指定不顯示複製作業的進度 (到目前為止複製的檔案或目錄數目)。
/eta 顯示所複製檔案的預估抵達時間 (ETA)。
/log:<logfile> 將狀態輸出寫入至記錄檔 (覆寫現有的記錄檔)。
/log+:<logfile> 將狀態輸出寫入記錄檔 (將輸出附加至現有的記錄檔)。
/unilog:<logfile> 將狀態輸出以 unicode 文字的形式寫入至記錄檔 (覆寫現有的記錄檔)。
/unilog+:<logfile> 將狀態輸出以 Unicode 文字的形式寫入記錄檔 (將輸出附加至現有的記錄檔)。
/tee 將狀態輸出寫入主控台視窗及記錄檔。
/njh 指定沒有作業標頭。
/njs 指定沒有作業摘要。
/unicode 將狀態輸出顯示為 unicode 文字。

作業選項

選項 描述
/job:<jobname> 指定要從具名作業檔案衍生參數。 若要執行 /job:jobname,您必須先執行 /save:jobname 參數來建立作業檔案。
/save:<jobname> 指定要將參數儲存至具名作業檔案。 這必須在執行 /job:jobname 之前先執行。 所有複製、重試和記錄選項都必須在此參數之前指定。
/quit 在處理命令列之後結束 (以檢視參數)。
/nosd 指示未指定來源目錄。
/nodd 指示未指定目的地目錄。
/if 包含指定的檔案。

備註

  • 在磁碟區的根目錄上使用 /PURGE/MIR 先前會導致 robocopy 同時在系統磁碟區資訊目錄內的檔案上套用要求的作業。 如果已指定任一者,已不再是這種情況,robocopy 將會略過複製工作階段最上層來源和目的地目錄中具有該名稱的任何檔案或目錄。

  • 只有在來源和目的地檔案系統都支援變更時間戳記時,才會套用修改過的檔案分類,例如 NTFS,而來源和目的地檔案有不同的變更時間,其他方面則相同。 根據預設,不會複製這些檔案。 指定 /IM 以包含它們。

  • /DCOPY:E 旗標要求應該對目錄嘗試擴充屬性複製。 如果無法複製目錄的 EA,Robocopy 將會繼續。 /COPYALL 中不包含此旗標。

  • 如果指定了 /IoMaxSize/IoRate,robocopy 會啟用複製檔案節流以減少系統負載。 這兩者都可以調整為最佳值和複製參數,但系統和 robocopy 可以視需要將其調整為允許的值。

  • 如果使用 /Threshold,它會指定進行節流的最小檔案大小。 低於該大小的檔案將不會受到節流。 這三個參數的值後面可以接著選擇性後置字元,例如 [KMG] (KB、MB、GB)。

  • 使用 /LFSM 要求 robocopy 以「低可用空間模式」運作。 在此模式下,每當檔複製導致目標磁碟區的可用空間低於「下限」值時,robocopy 就會暫停。 您可以使用 /LFSM:n[KMG] 旗標明確指定此值。

  • 如果指定 /LFSM 時沒有明確的下限值,則下限會設定為目的地磁碟區大小的 10%。 低可用空間模式與 /MT/EFSRAW 不相容。

結束 (傳回) 碼

描述
0 未複製任何檔案。 未發生任何失敗。 沒有檔案不相符。 檔案已存在於目的地目錄中;因此,已略過複製作業。
1 已成功複製所有檔案。
2 目的地目錄中有一些其他檔案不存在於來源目錄中。 未複製任何檔案。
3 已複製一些檔案。 其他檔案已存在。 未發生任何失敗。
5 已複製一些檔案。 某些檔案不符。 未發生任何失敗。
6 存在其他檔案和不相符的檔案。 未複製任何檔案,且未發生任何失敗,這表示目的地目錄中已有檔案。
7 已複製檔案、存在檔案不符,且有其他檔案存在。
8 數個檔案未複製。

注意

任何等於或大於 8 的值都表示複製作業期間至少有一個失敗。

範例

執行 robocopy 命令時,強烈建議您建立記錄檔,可以在程序完成驗證其完整性時立即檢視。 在下列範例中,每個範例都會使用 /LOG: 參數。 若要將任何記錄資訊附加至相同的記錄檔,請改用 /LOG+: 參數。

若要將所有檔案和子目錄,包括空白目錄,從磁碟機 D 上的 [Records] 資料夾複製到 [Backup] 資料夾,請輸入下列內容:

robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log

若要將磁碟機 D 上 [Records] 資料夾的內容鏡像到 [Backup] 資料夾,刪除目的地中不存在的檔案並重試 2 次且在每次重試之間等候 5 秒,請輸入下列內容:

robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log

若要將所有不是空白的檔案和子目錄從磁碟機 D 上的 [Records] 資料夾複製到 [Backup] 資料夾,以 16 個多執行緒複製作業保留檔案資料、屬性和時間戳記,請輸入下列內容:

robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log

若要將檔案和子目錄從磁碟機 D 上的 [Records] 資料夾移至 [Backup] 資料夾,並排除超過 7 天的檔案,請輸入下列內容:

robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log

若要將所有檔案和子目錄,包括空白目錄,從磁碟機 D 上的 [Records] 資料夾複製到 [Backup] 資料夾,顯示每個檔案的估計時間,並刪除目的地中不存在來源的任何檔案和目錄,請輸入下列內容:

robocopy C:\Users\Admin\Records D:\Backup /ETA /PURGE /LOG:C:\Logs\Backup.log

若要將 C 磁碟機上名為 [Records] 的資料夾的所有檔案和子目錄複製到 D 磁碟機上名為 [Backup] 的資料夾,同時在複製作業期間將 I/O 速率限制為每秒 1 MB,請輸入下列命令:

robocopy C:\Records D:\Backup /iorate:1m