將資料從一個位置複製到另一個。
Syntax
robocopy <source> <destination> [<file>[ ...]] [<options>]
例如,若要將名為 yearly-report.mov 的檔案從 c:\reports 複製到檔案共用 \\marketing\videos ,同時啟用多執行緒以獲得更高的效能 (使用 /mt 參數) ,並在傳輸中斷時重新啟動傳輸的能力 (使用 /z 參數),請輸入:
robocopy c:\reports "\\marketing\videos" yearly-report.mov /mt /z
Important
如果從裝置的 根目錄 複製任何資料,目標目錄會在複製過程中採用「隱藏」和「系統」屬性。
Parameters
| Parameter | Description |
|---|---|
<source> |
指定來源目錄的路徑。 |
<destination> |
指定目的地目錄的路徑。 |
<file> |
會指定要複製的一個或多個檔案。 支援萬用字元 (* 或 ?)。 如果未指定此參數,則會將 *.* 用作為預設值。 |
<options> |
指定要與 robocopy 指令搭配使用的選項,包括 複製、 檔案、 重試、 記載及 工作 選項。 |
Copy options
| Option | Description |
|---|---|
| /s | Copies subdirectories. 這個選項會自動排除空白目錄。 |
| /e | Copies subdirectories. 這個選項會自動包含空白目錄。 |
/lev:<n> |
僅複製來源目錄樹狀結構的前 n 層。 |
| /z | 在可重新啟動模式中複製檔案。 在可重新啟動模式中,如果檔案複製遭到中斷,robocopy 可以挑選從離開的位置繼續,而不是重新複製整個檔案。 |
| /b | 在備份模式中複製檔案。 在備份模式中,robocopy 會覆寫檔案和資料夾權限設定 (ACL),否則可能會封鎖存取。 |
| /zb | 在可重新啟動模式中複製檔案。 如果檔案存取遭拒,請切換至備份模式。 |
| /j | 使用未緩衝的 I/O 複製 (建議用於大型檔案)。 |
| /efsraw | 在 EFS RAW 模式中複製所有加密檔案。 |
/copy:<copyflags> |
指定要複製的檔案屬性。 這個選項的有效值為:
|
/dcopy:<copyflags> |
指定要在目錄中複製的內容。 這個選項的有效值為:
|
| /sec | 複製具有安全性的檔案 (相當於 /copy:DATS)。 |
| /copyall | 複製所有檔案資訊(相當於/copy:DATSOU)。 |
| /nocopy | 不複製任何檔案資訊 (與 /purge 搭配使用)。 |
| /secfix | 修正所有檔案的檔案安全性,甚至略過的檔案。 |
| /timfix | 修正所有檔案的檔案時間,甚至略過的檔案。 |
| /purge | 刪除來源中已不存在的目的地檔案和目錄。 將此選項與 /e 選項及目的地目錄搭配使用,可讓目的地目錄安全性設定不會被覆寫。 |
| /mir | 鏡像目錄樹狀結構 (相當於 /e 加上 /purge)。 將此選項與 /e 選項和目的地目錄搭配使用,會覆寫目的地目錄安全性設定。 |
| /mov | 移動檔案,並在複製檔案之後將其從來源刪除。 |
| /move | 移動檔案和目錄,並在複製檔案之後將其從來源刪除。 |
| /a+:[RASHCNET] | 將指定的屬性加入至複製的檔案。 這個選項的有效值為:
|
| /a-:[RASHCNETO] | 從複製的檔案中刪除指定的屬性。 這個選項的有效值為:
|
| /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:<y|n> |
啟用或停用在複製程序期間保留檔案的疏鬆狀態。 如果未選取任何選項,則預設為 是 (已啟用)。 |
| /noclone | 請勿嘗試區塊複製作為最佳化。 |
Important
使用 /secfix 複製選項時,請使用下列其中一個其他複製選項來指定您要複製的安全性資訊類型:
- /copyall
- /copy:o
- /copy:s
- /copy:u
- /sec
Note
/mt 參數是在 Windows Server 2008 R2 中引進的,其功能適用於目前版本的 Windows Server。
複製檔案節流選項
| Option | Description |
|---|---|
/iomaxsize:<n>[kmg] |
每個讀取/寫入週期所要求的 I/O 大小上限,以 nkilobytes、 megabytes 或 gigabytes 為單位。 |
/iorate:<n>[kmg] |
要求的 I/O 速率,以 nkilobytes megabytes 或 gigabytes 每秒為單位。 |
/threshold:<n>[kmg] |
節流的檔案大小臨界值,以 nkilobytes、 megabytes 或 gigabytes 為單位 (請參閱 備註)。 |
這些節流選項可用來指定 Robocopy 允許的最大 I/O 頻寬,以每秒位元組為單位。 如果未以每秒位元組數為單位指定,則在指定 k、 m 或 g 時可以使用整數。 節流的最小 I/O 頻寬為 524288 個位元組,即使指定了較小的值也一樣。
檔案選取選項
| Option | Description |
|---|---|
| /a | 僅複製已設定「 封存」 屬性的檔案。 |
| /m | 僅複製已設定「 封存」 屬性的檔案,並重設「 封存」 屬性。 |
/ia:[RASHCNETO] |
只包含已設定任何指定屬性的檔案。 這個選項的有效值為:
|
/xa:[RASHCNETO] |
排除已設定任何指定屬性的檔案。 這個選項的有效值為:
|
/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 指定天數。 否則, n 會以 YYYYMMDD 格式指定日期。 |
| /xj | 排除一般預設包含的接合點。 |
| /fft | 假設 FAT 檔案時間 (兩秒精確度)。 |
| /dst | 補償一小時的 DST 時間差異。 |
| /xjd | 排除目錄的接合點。 |
| /xjf | 排除檔案的接合點。 |
Retry options
| Option | Description |
|---|---|
/r:<n> |
指定失敗複製的重試次數。 n 的預設值為 1,000,000 (重試一百萬次)。 |
/w:<n> |
指定重試之間的等候時間,以秒為單位。 n 的預設值為 30 (等待時間 30 秒)。 |
| /reg | 將 /r 和 /w 選項中指定的值儲存為登錄中的預設設定。 |
| /tbd | 指定系統等候定義共用名稱 (重試錯誤 67)。 |
| /lfsm | 在低可用空間模式下運作,以啟用複製、暫停和繼續 (請參閱 備註)。 |
/lfsm:<n>[kmg] |
指定底層大小,以 nkilobytes、 megabytes 或 gigabytes 為單位。 |
Logging options
| Option | Description |
|---|---|
| /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 options
| Option | Description |
|---|---|
/job:<jobname> |
指定要從具名作業檔案衍生參數。 若要執行 /job:jobname,您必須先執行 /save:jobname 參數來建立作業檔案。 |
/save:<jobname> |
指定要將參數儲存至具名作業檔案。 這必須在執行 /job:jobname 之前先執行。 所有複製、重試和記錄選項都必須在此參數之前指定。 |
| /quit | 在處理命令列之後結束 (以檢視參數)。 |
| /nosd | 指示未指定來源目錄。 |
| /nodd | 指示未指定目的地目錄。 |
| /if | 包含指定的檔案。 |
Remarks
在磁碟區的根目錄上使用 /PURGE 或 /MIR 先前會導致 robocopy 也會在系統磁碟區資訊目錄內的檔案上套用要求的作業。 這已不再是指定的案例,robocopy 會略過複製會話最上層來源和目的地目錄中具有該名稱的任何檔案或目錄。
只有在來源和目的地檔案系統都支援變更時間戳記時,才會套用修改過的檔案分類,例如 NTFS,而來源和目的地檔案有不同的變更時間,其他方面則相同。 根據預設,不會複製這些檔案。 指定 /IM 以包含它們。
/DCOPY:E 旗標會要求應該嘗試目錄的擴充屬性複製。 Robocopy 會繼續複製作業,即使無法複製目錄的 EA 也一樣。 此旗標不包含在 /COPYALL 中。
如果指定 /IoMaxSize 或 /IoRate,robocopy 會啟用複製檔案節流,以減少系統負載。 這兩者都可以調整為最佳值和複製參數,但系統和 robocopy 可以視需要將其調整為允許的值。
如果使用 /Threshold ,它會指定參與節流的最小檔案大小。 低於該大小的檔案不會受到節流。 這三個參數的值後面可以接著選擇性後置字元,例如 [KMG] (KB、MB、GB)。
使用 /LFSM 要求 robocopy 以「低可用空間模式」運作。 在此模式中,每當檔案復本會導致目的地磁碟區的可用空間低於「floor」值時,robocopy 就會暫停。 您可以使用 /LFSM:n[KMG] 旗標明確指定此值。
如果指定 /LFSM 且沒有明確的樓層值,則下限會設定為目的地磁碟區大小的 10%。 低可用空間模式與 /MT 和 /EFSRAW 不相容。
結束 (傳回) 碼
| Value | Description |
|---|---|
| 0 | 未複製任何檔案。 未發生任何失敗。 沒有檔案不相符。 檔案已存在於目的地目錄中;因此,已略過複製作業。 |
| 1 | 已成功複製所有檔案。 |
| 2 | 目的地目錄中有一些其他檔案不存在於來源目錄中。 未複製任何檔案。 |
| 3 | 已複製一些檔案。 其他檔案已存在。 未發生任何失敗。 |
| 5 | 已複製一些檔案。 某些檔案不符。 未發生任何失敗。 |
| 6 | 存在其他檔案和不相符的檔案。 未複製任何檔案,且未發生任何失敗,這表示目的地目錄中已有檔案。 |
| 7 | 已複製檔案、存在檔案不符,且有其他檔案存在。 |
| 8 | 數個檔案未複製。 |
Note
任何等於或大於 8 的值都表示在複製作業期間至少發生一次失敗。
Examples
執行 robocopy 命令時,強烈建議您建立記錄檔,可以在程序完成驗證其完整性時立即檢視。 在下列範例中,每個範例都會使用 /LOG: 參數。 若要將任何記錄資訊附加至相同的記錄檔,請改用 /LOG+: 參數。
若要將所有檔案和子目錄,包括空白目錄複製到磁碟驅動器 「D」 上的 「Backup」 資料夾,請輸入:
robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log
若要將 「Records」 資料夾的內容鏡像到磁碟驅動器 「D」 上的 「Backup」 資料夾,請刪除目的地中不存在且每次重試 5 秒,並在每次重試之間等候 5 秒的檔案:
robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log
若要將所有不是空白的檔案和子目錄從 「記錄」資料夾複製到磁碟驅動器 「D」 上的 「Backup」 資料夾,請保留具有 16 個多線程複製作業的檔案資料、屬性和時間戳,請輸入:
robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log
若要將檔案和子目錄從 [記錄] 資料夾移至磁碟驅動器 「D」 上的 [備份] 資料夾,並排除超過 7 天的檔案,請輸入:
robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log
若要將所有檔案和子目錄,包括空白目錄複製到磁碟驅動器 「D」 上的 「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
若要在目的地資料夾中已有檔案存在時,略過將檔案從源資料夾複製到目的地資料夾,不論檔案是否為較新、較舊或修改,請輸入:
robocopy C:\Source C:\Destination /XC /XN /XO