【常用小知識】 windows下拷貝大文件

前言

筆者在清理自己的windows文件時遇到了拷貝大量文件時windows會無響應的情況,於是搜了一波,用命令行工具robocopy解決了該問題。

ROBOCOPY 詳細說明(暫時用可跳過)

在命令行輸入 robocopoy /? 即可看到

命令語法

ROBOCOPY source destination [file [file]…] [options]
源:源目錄(驅動器:\路徑或\服務器\共享\路徑)
目標:目標目錄(驅動器:\路徑或\服務器\共享\路徑)
文件:要複製的文件(名稱/通配符: 默認爲 “.”)

複製選項

/S:複製子目錄,但不復制空的子目錄。
/E:複製子目錄,包括空的子目錄。
/LEV:n:僅複製源目錄樹的前 n 層。
/Z:在可重新啓動模式下複製文件。
/B:在備份模式下複製文件。
/ZB:使用可重新啓動模式;如果拒絕訪問,請使用備份模式。
/EFSRAW:在 EFS RAW 模式下複製所有加密的文件。
/COPY:複製標記:: 要複製的文件內容(默認爲 /COPY:DAT)。(複製標記: D=數據,A=屬性,T=時間戳)。(S=安全=NTFS ACL,O=所有者信息,U=審覈信息)。
/DCOPY:T:複製目錄時間戳。
/SEC:複製具有安全性的文件(等同於 /COPY:DATS)。
/COPYALL:複製所有文件信息(等同於 /COPY:DATSOU)。
/NOCOPY:不復制任何文件信息(與 /PURGE 一起使用生效)。
/SECFIX:修復所有文件的文件安全性,即使是跳過的文件。
/TIMFIX:修復所有文件的文件時間,即使是跳過的文件。
/PURGE:刪除源中不再存在的目標文件/目錄。
/MIR:鏡像目錄樹(等同於 /E 和 /PURGE)。
/MOV:移動文件(複製後從源中刪除)。
/MOVE:移動文件和目錄(複製後從源中刪除)。
/A+:[RASHCNET]:將給定的屬性添加到複製文件。
/A-:[RASHCNET]:從複製文件中刪除給定的屬性。
/CREATE:僅創建目錄樹和長度爲零的文件。
/FAT:僅使用 8.3 FAT 文件名創建目標文件。
/256:關閉超長路徑(> 256 字符)支持。
/MON:n:監視源;發現多於 n 個更改時再次運行。
/MOT:m:監視源;如果更改,在 m 分鐘時間內再次運行。
/RH:hhmm-hhmm:運行小時數 – 可以啓動新副本的時間。
/PF:以每個文件(而不是每個步驟)爲基礎檢查運行小時數。
/IPG:n:程序包間的間距(ms),以釋放低速線路上的帶寬。
/SL:對照目標複製符號鏈接。
/MT[:n]:使用 n 個線程進行多線程複製(默認值爲 8)。n 必須至少爲 1,但不得大於 128。該選項與 /IPG 和 /EFSRAW 選項不兼容。使用 /LOG 選項重定向輸出以便獲得最佳性能。

文件選擇選項

/A:僅複製具有存檔屬性集的文件。
/M:僅複製具有存檔屬性的文件並重置存檔屬性。
/IA:[RASHCNETO]:僅包含具有任意給定屬性集的文件。
/XA:[RASHCNETO]:排除具有任意給定屬性集的文件。
/XF 文件[文件]…:排除與給定名稱/路徑/通配符匹配的文件。
/XD 目錄[目錄]…:排除與給定名稱/路徑匹配的目錄。
/XC:排除已更改的文件。
/XN:排除較新的文件。
/XO:排除較舊的文件。
/XX:排除多餘的文件和目錄。
/XL:排除孤立的文件和目錄。
/IS:包含相同文件。
/IT:包含已調整的文件。
/MAX:n:最大的文件大小 – 排除大於 n 字節的文件。
/MIN:n:最小的文件大小 – 排除小於 n 字節的文件。
/MAXAGE:n:最長的文件存在時間 – 排除早於 n 天/日期的文件。
/MINAGE:n:最短的文件存在時間 – 排除晚於 n 天/日期的文件。
/MAXLAD:n:最大的最後訪問日期 – 排除自 n 以來未使用的文件。
/MINLAD:n:最小的最後訪問日期 – 排除自 n 以來使用的文件。(If n < 1900 then n = n days, else n = YYYYMMDD date)。
/XJ:排除接合點。(默認情況下通常包括)。
/FFT:假設 FAT 文件時間(2 秒粒度)。
/DST:彌補 1 小時的 DST 時間差。
/XJD:排除目錄的接合點。
/XJF:排除文件的接合點。

重試選項

/R:n:失敗副本的重試次數: 默認爲 1 百萬。
/W:n:兩次重試間的等待時間: 默認爲 30 秒。
/REG:將註冊表中的 /R:n 和 /W:n 保存爲默認設置。
/TBD:等待定義共享名稱(重試錯誤 67)。

日誌記錄選項

/L:僅列出 – 不復制、添加時間戳或刪除任何文件。
/X:報告所有多餘的文件,而不只是選中的文件。
/V:生成詳細輸出,同時顯示跳過的文件。
/TS:在輸出中包含源文件的時間戳。
/FP:在輸出中包含文件的完整路徑名稱。
/BYTES:以字節打印大小。
/NS:無大小 – 不記錄文件大小。
/NC:無類別 – 不記錄文件類別。
/NFL:無文件列表 – 不記錄文件名。
/NDL:無目錄列表 – 不記錄目錄名稱。
/NP:無進度 – 不顯示已複製的百分比。
/ETA:顯示覆制文件的預期到達時間。
/LOG:文件:將狀態輸出到日誌文件(覆蓋現有日誌)。
/LOG+:文件:將狀態輸出到日誌文件(附加到現有日誌中)。
/UNILOG:文件:以 UNICODE 方式將狀態輸出到日誌文件(覆蓋現有日誌)。
/UNILOG+:文件:以 UNICODE 方式將狀態輸出到日誌文件(附加到現有日誌中)。
/TEE:輸出到控制檯窗口和日誌文件。
/NJH:沒有作業標頭。
/NJS:沒有作業摘要。
/UNICODE:以 UNICODE 方式輸出狀態。

作業選項

/JOB:作業名稱:從命名的作業文件中提取參數。
/SAVE:作業名稱:將參數保存到命名的作業文件
/QUIT:處理命令行後退出(以查看參數)。
/NOSD:未指定源目錄。
/NODD:未指定目標目錄。
/IF:包含以下文件。

robocopy簡單示例

目前有兩個文件夾 C:\a ,D:\b
文件夾a中的目錄結構爲,以/結尾說明爲目錄,否則爲文件
a/
a/b/
a/b/c.txt
a/b/d.txt
a/b/e.cpp
a/e/

拷貝整個a目錄到b目錄下

robocopy C:\a D:\b /e

拷貝a目錄中的非空文件夾到b目錄下

robocopy C:\a D:\b /s

拷貝c.txt 文件到b目錄下

robocopy C:\a\b\c.txt D:\b

拷貝c.txt d.txt 文件到b目錄下

robocopy C:\a\b\*.txt D:\b
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章