【轉載】robocopy的用法

常常進行文件管理操做的朋友們,不滿意於Windows系統內置的複製功能,由於它太龜速了。因而你們就使用FastCopy、TeraCopy之類的軟件來加速複製,可是你是否知道Windows 7已經內置快速複製的功能?windows

這項功能就是RoboCopy,它是一個命令行的目錄複製命令,自從Windows NT 4.0 開始就成爲windows 資源工具包的一部分,而後在Windows Vista、Windows 7和 Windows Server 2008採用做爲標準的功能。Windows 7的此項功能也獲得升級——已經能夠支持多線程了,這就意味着能夠大大提高複製速度。並且該功能能夠建立兩個文件結構徹底的鏡像副本而不復制任何不須要的重複文件,同時還容許您保留全部相關文件信息,包括日期和時間戳、安全訪問控制列表(ACL))等等。下面先看看這條命令的用法吧:安全

命令語法:ROBOCOPY source destination [file [file]…] [options]服務器

源:源目錄(驅動器:\路徑或\\服務器\共享\路徑)
目標:目標目錄(驅動器:\路徑或\\服務器\共享\路徑)
文件:要複製的文件(名稱/通配符: 默認爲 "*.*")多線程

複製選項less

/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 選項重定向輸出以便得到最佳性能。ssh

文件選擇選項編輯器

/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 GUI,它提供交互界面使得使用簡化很多:

 

【複製測試】

我將一共達7.9G的《阿凡達》高清電影文件,經過Robocopy、系統內置的複製功能和Terecopy三項分別複製到相同的目的地,複製過程當中基本沒有進行其餘系統操做,得出複製完成所須要的時間並比較

一、經過Robocopy命令複製文件,使用最大線程128,花費的時間爲6分02秒

 

二、使用系統內置的文件複製功能,使用秒錶計時顯示時間爲6分22秒

三、使用Terecopy複製,顯示使用5分32秒

 

測試速度大小結果:Terecopy > Robocopy命令 > 內置複製功能,可見Robocopy與專業的複製軟件在速度上有必定的差距,並且易用性比較差。可是在沒有安裝其餘複製軟件的狀況下,要想快速複製大量的文件,Robocopy命令仍是一個不錯的選擇。

 
----------------------------------------------------
----------------【例子】-------------------
實例一:文件,想怎麼複製就怎麼複製
   [實現效果]
  隨時將源文件夾中的純文本(TXT)、Word文檔(DOC)還有BMP、TIF圖像文件複製到目標文件夾中
,這是在「資源管理器」中直接拖放所作不到的。[簡單命令]
robocopy d:\work e:\back *.txt *.doc *.bmp *.tif /s
  [參數講解]
  將d:\work文件下的TXT、DOC、BMP、TIF複製到e:\back文件夾,其餘文件則不復制。/s是表示包括
除空文件下的全部子目錄,若是沒有則僅複製d:\work下的文件而不包括子目錄。
   [觸類旁通]
  (1)若是要將文件夾下的全部文件包括空文件夾所有複製到目標文件夾,命令爲:robocopy
d:\work e:\back /e
  /e表示複製全部子目錄包括空文件夾。
  (2)若是隻想複製兩個層級內的文件(再下的層級裏的文件則不拷貝),輸入命令:robocopy
d:\work e:\back /e /lev:2
  /lev:2表示複製的層級,好比指定層級後d:\work\soft(二級)下的文件會被複制,而
d:\work\soft\office(***)下的文件則不被複制。
實例二:垃圾文件不復制
   [實現效果]在備份數據時,不可避免會將相似於*.bak、*.tmp的垃圾文件也複製到目標文件夾,用
Robocopy能夠將咱們常常碰到的垃圾文件在拷貝時就清理出家門,從而生成一個乾乾淨淨的文件夾。
   [簡單命令]
  robocopy d:\work e:\back /e /xf *.tmp *.bak
   [參數講解]
  /xf爲指定不執行復制操做的文件類型,後面的文件名支持通配符。若是參數爲/xd,則表示排除後
面指定的文件夾。
實例三:大文件 我不要
   [實現效果]
  複製的時候,爲了節省時間,須要將一些大文件暫時不拷貝,等有空閒時間時,再執行復制操做不
遲。
   [簡單命令]
  robocopy d:\work e:\back /e /max:6000000
   [參數講解]
  僅複製不大於6000000bytes的文件,/max:後直接接數值,數值單位爲byte。若是是/min:1000,則
複製不小於1000bytes的文件。兩個參數能夠同時使用,界定複製文件大小的範圍。
實例四:只要這一週修改的文件
   [實現效果]
  這一週處理了哪些文檔?編輯了那些文件?將這些修改了的文檔複製到一個文件夾下,再好好回味
一下。本例就是要將d:\work中最近七天內新建或修改了的TXT、DOC、XLS、PPT等文檔,複製到e:\look
目錄下。
   [簡單命令]
  robocopy d:\work e:\look /s *.txt *.doc *.xls *.ppt /maxage:7
   [參數講解]
  /maxage:表示最遠修改時間的,修改時間比這個還要舊的文件將不會被複制。/maxage:後可接數字
,也能夠接日期,數字小於1900時表示天數,不然就得用YYYYMMDD來表示具體的日期
   如/maxage:20040210表示2004年2月10往後被修改的文件才容許複製。與之相對應的參數
是/minage,表示最近修改時間,比這個時間新的文件將不被複制。
   [觸類旁通]
  robocopy d:\work e:\look /s *.txt *.doc *.xls *.ppt /maxage:7 /minage:1
  則表示近七天內除今天外修改的文件才容許被複制。
  與修改時間相對的還有最近訪問時間,/maxage指最遠訪問時間,比這個時間老的文件將不被複制。
/minage是指最近訪問時間,比這個時間新的文件將不被複制。
實例五:個人文檔排排站
   [實現效果]
  上例中複製時,全部的文檔都會帶來自己的路徑信息,文檔是會將其所存放的文件夾也複製過來。
這給咱們的翻閱查看帶來不少不便,得單擊多層文件夾才能看到文件,能不能將全部的文檔直接複製到
一個文件夾下呢?這個須要用XXCOPY來實現。
       [簡單命令] 
  xxcopy d:\work e:\look /s /in*.txt /in*.doc /sg /yy /da:2004-02-02 /DB:2004-02-
10/DA:1997-01-01
   [參數講解]
  此命令將d:\work中從2004年2月2日到2月10生成的 TXT、DOC文件所有直接複製到e:\look目錄下,
不新建子文件夾,打開e:\look就能看到全部文件。XXCOPY和Robocopy的語法參數仍是有較大差別的,表
示指定文件類型時,XXCOPY會用/in*.*,表示日期時/da爲在指定時間後,/db爲在指定時間前,日期的
表示爲YYYY- MM-DD。
  另外,/sg表示複製文件到同一文件夾,/yy表示在全部要求用戶應答的地方都自動認爲是Yes,在執
行過程當中不須要用戶干預。
實例六:徹底克隆
   [實現效果]
  咱們通常採起的複製方式默認是增量複製,即根據文件的大小、修改時間將源文件夾裏的內容向目
標文件夾複製,長此以往,目標文件夾裏就可能存在大量源件夾裏早已經刪除且無用的文件和文件夾。
若是要讓備份徹底相同,即拷貝時刪除在目標文件夾裏存在但源文件夾裏並無的文件。
   [簡單命令]
  robcopy d:\work e:\look /mir
   [參數講解]
  /mir的做用等同於/purge /e,/purge表示清理目標文件夾有而源文件夾裏沒有的文件(夾)。經過
這個命令,能保證源文件夾和目標文件夾結構與文件徹底相同。這在建立鏡像備份時,很是有用。
實例七:移動文件
   [實現效果]
  咱們前面講的都是複製,若是咱們要將文件夾移動到目標文件夾,如何操做呢?
   [簡單命令]
  robocopy d:\work e:\look /move /e
   [參數講解]
  其中,/move表示移動。
實例八:我只要文件夾骨架
   [實現效果]
  筆者的工做須要週期性地新建和整理大量的文件夾,每次的文件夾結構同樣,只是文件不盡相同。
若是是之前,就得一個一個簡單重複去製做,而如今就不須要了。Robocopy和XXCOPY可讓你輕鬆實現
複製文件夾結構。
   [簡單命令]
  xxcopy d:\work e:\mystruct /t /yy /dl3
   [參數講解]
  將d:\work的三層文件夾結構複製到e:\mystruct中。其中/t表示建立文件夾結構,/dl3表示複製的
文件夾結構爲***,數字能夠自行輸入,若是沒有此參數,默認創建整個文件夾結構。
  Robocopy建立文件夾相對要麻煩一些,/create參數不只要建立結構,還要建立文件夾下全部文件的
0字節文件,並不是真正的結構,咱們只好劍走偏鋒了。
  robocopy d:\work e:\mystruct /e /lev:3 /minage:19000101
  爲Robocopy指定一個不可能建立文件的時間,由於有參數/e 的做用,雖然沒有文件符合要求(你機
器裏沒有早於1900年1月1日的文件),但Robocopy仍是會忠實地建立文件夾,這樣就達到了生成文件夾
結構的目的。另外,/lev:3表示複製文件夾的層級,一樣能夠自行輸入。
實例九:隱藏文件我不要
   [實現效果]
  在默認狀態下,隱藏文件是並不顯示的,但在複製的過程當中,它還會隨着文件夾一塊兒被複制。可不
能夠將這些隱藏文件排除在複製範圍以外呢?
   [簡單命令]
  robocopy d:\work e:\back /e /xa:h
   [參數講解]
  Robocopy支持對屬性進行操做。上面的命令將複製源文件夾中所有文件,但所有具備隱藏屬性的文
件將不會被複制。/xa:h,表示將具備隱藏屬性的排除出複製範圍,與之相對應的是/ia,表示包括只對
擁有指定屬性的執行操做。屬性有R:只讀,A:存檔,S:系統,H:隱藏等幾種供選擇。
   [觸類旁通]
  (1)此外,Robocopy還有/a+、/a-等參數對文件屬性進行操做,分別表示在文件被拷貝後爲文件添
加、去除某屬性。
  robocopy d:\work e:\back /ia:rs  
  表示只複製具備只讀和系統屬性的文件。
  (2)robocopy c: d: /-a:rsh
  表示將文件拷貝到D盤後,將拷貝生成的文件的只讀、系統、隱藏屬性去掉,以方便查看和修改。
實例十:NTFS權限跟着走
   [實現效果]
  在使用Windows 2000、Windows XP時,在多用戶使用一臺電腦時或管理服務器時,常常要爲文件夾
指定用戶訪問和修改的權限(如圖1,須要分區爲NTFS)。不過,用通常的複製方式沒法保留咱們設置的
權限,這在服務器備份時意味着咱們得從新設置用戶權限。不過,Robocopy可讓咱們在複製文件的時
候,將屬性、用戶權限、全部者均可以一併複製到目標文件夾中。

備份雙友鄰精彩5例-Robocopy和xxcopy全掌握
   [簡單命令]
  robocopy d:\work e:\back /e /copyall
   [參數講解]
  /copyall等於/copy:datsou,表示將全部源文件夾的信息複製到目標文件夾中,其中D:文件數據,
A:文件屬性,T:時間信息,S:權限信息,O:全部者信息,U:審覈信息。
   [觸類旁通]
  若是源文件夾的權限被修改,須要一樣更新目標文件夾的權限時,咱們沒必要再重複複製,只需輸入
robocopy d:\work e:\back /is /copy:sou
  若是沒有/copy參數,默認爲/copy:dat,沒有後面三項的信息。
實例十一:集中備份到文件服務器
   [實現效果]
  但願天天可以把相應數據備份到文件服務器上,以避免數據丟失。
   [簡單命令]
  robocopy d:\work \ctips_serverarticlesshare  /e /copyall
   [參數講解]
  從中能夠看出,robocopy徹底支持文件服務器共享文件夾數據的拷貝。
   [觸類旁通]
  (1)若是咱們建立了一個環境變量,如定義%databack%爲\ctips_serverarticles\back,那隻要輸
入相應的命令:robocopy d:\work  %databack% /e /copyall 便可把d:\work下的文件所有備份到
\ctips_serverarticles\back下。固然,若是\ctips_serverarticles\back空間不夠時,只要更換環境
變量的值到其餘文件夾,如\ctips_serverarticles ewback,上述命令無需更改就能夠反數據拷貝到新
的文件夾中。
  (2)若是你只想把數據備份到共享文件夾中以你的機器名爲名字的共享文件夾中,使用xxcopy會更
方便:xxcopy d:\work  \ctips_serverarticles/$HOST$ /e /yy 其中/$HOST$表示你的機器名,如你的
機器名爲CTIPS_SYJ,那會把d:\work 文件夾下的文件拷貝到\ctips_serverarticles\CTIPS_SYJ文件夾
下。若是你的機器名爲CTIPS_MLB,那執行上述命令後就能夠把d:\work 文件夾下的文件拷貝到
\ctips_serverarticles\CTIPS_MLB文件夾下。因爲同局域網內的機器名字不會相同,執行上述命令後就
能夠保證數據不會被拷貝到同一文件夾下。
實例十二:一動就備份
   [實現效果]
  有些工做內容很是重要,須要時時刻刻注意備份,但是咱們哪裏有這麼好記性和耐性呢?這事,還
是交給 Robocopy來作吧。Robocopy能時時監視要備份的文件夾,只要文件夾修改到必定時間和程序,
Robocopy就會當即開始備份。它會一直監視文件夾,除非用戶本身終止。
   [簡單命令]
  robocopy d:\work e:\back  /e /copyall /mot:1 /mon:2
   [參數講解]
  上述命令表示複製文件夾全部信息到目標文件夾並進行監視。執行此命令後,命令提示符窗口如圖2
所示。一旦時間過了一分鐘,而且源文件夾至少有或2處以上的修改,Robocopy就會自動啓動另外一個進程
,執行上述備份操做。Robocopy能監視源文件夾結構、文件和文件夾名稱、大小、最後修改時間,在這
裏,甚至連屬性和權限等信息被修改時,Robocopy也會記爲修改次數。
備份雙友鄰精彩5例-Robocopy和xxcopy全掌握
  /mot後接的是時間(分鐘),是指Robocopy執行操做的最短期;/mon後接的是最少文件修改個數
。在監視過程當中,會自動記錄時間和修改的次數,只有同時符合以上兩個條件時,Robocopy纔開始執行
,執行完成後,這兩個數據會自動清零,並從新開始監視文件夾,除非用戶關閉命令提示符窗口或按下
Ctrl+Break鍵。
   [觸類旁通]
  若是你要開機就監視並備份相應文件夾,則能夠把上述命令放到「啓動」組中。
實例十三:不到時間不備份
   [實現效果]
  複製的過程總會佔用系統資源,若是能設置在本身不在電腦邊上的時候開始複製備份,就會方便得
多。好比,天天5:50下班,但願下班後,到達6點時,Robocopy自動開始備份相應數據。
   [簡單命令]
  robocopy d:\work e:\back /e /rh:1800-1830
   [觸類旁通]
  運行後,複製操做將會等待至指定時間開始(如圖3)。其中,RH格式爲/RH:hhmm-hhmm,指定
Robocopy開始的時間段,在這個時間段外,拷貝會被暫停。時間爲24小時格式,4個數字長,從0000到
2359,並且兩個數字不能相同。
備份雙友鄰精彩5例-Robocopy和xxcopy全掌握
實例十四:計劃任務備份
  以上的到時間備份、監視文件夾備份方式,每次重啓系統會都會要從新執行以上命令,還遠遠不夠
智能,若是能和Windows的計劃任務配合,全部問題就迎刃而解了。以咱們要在天天10:00自動調用
Robocopy開始監視備份文件夾爲例,說一說計劃任務與Robocopy的攜手。
  第一步:新建BAT文件
新建一個批處理文件autobak.bat,輸入以下命令
robocopy d:\work e:\back  /e /copyall  /mot:1 /mon:2
  第二步:建立計劃任務
選擇「開始→設置→控制面板」,雙擊「任務計劃」圖標。把autobak.bat批處理文件拖放到「任務計劃
」窗口,而後雙擊新生成的autobak.bat圖標,在彈出窗口中設置其屬性。
  第三步:設置開始時間
切換到「日程安排」標籤,單擊「任務計劃」下拉列表框,從中選擇「天天」,「開始時間」設置爲
10:00,單擊「高級」能夠設置起止的日期(如圖4)。
  經過上述設置後,到了設置的時間,機器就會自動備份執行批處理文件,自動備份並監視文件夾。
備份雙友鄰精彩5例-Robocopy和xxcopy全掌握
實例十五:清理文件也拿手   除了通常的複製功能,XXCOPY還有文件清理功能,能夠將不須要的文件快速清理出硬盤。如下命令 會清除文件和文件夾,請先創建測試文件夾掌握其操做後再對文件夾進行操做。 1.清除全部無用文件 xxcopy  d:\work*.tmp /s /h /yy /rs /rs表示不復制而直接從源文件夾中刪除指定文件,/h表示指定隱藏和系統文件。 2.清除文件夾 xxcopy  c: emp /rmdir /db:2002-01-01 /yy 刪除c: emp中在2002年1月1日前的修改的文件夾。 3.刪除空文件夾 xxcopy c: emp  /rmdir /sz:0 /yy 刪除c: emp下全部空文件夾,/sz:0指定大小爲0的文件(夾)。 4.刪除0字節文件 xxcopy c: emp*.*  /sz:0 /s /h /yy /rs 經過以上四種方式的組合,咱們能夠輕鬆實現對文件及文件夾的整理工做。 最後,還有一幾個小技巧告訴你,但願能有利於你更好地使用XXCOPY和Robocopy。 ★將命令變成任務 在Robocopy加上「/save:任務名」能夠將當前操做記錄爲任務文件,經過「/job:任務名」就能夠方便調 用,不須要再輸入一長串的命令了。此任務文件能夠用純文本編輯器(如記事本)來編輯。 ★將複製備份過程錄下來 默認狀況下,Robocopy的操做過程只是在命令提示符中顯示,咱們可讓它把操做過程輸出爲TXT文件, 加上「/log:文件名.txt」便可。  
相關文章
相關標籤/搜索