Windows提供的複製操做功能實在是太過簡陋,可定製性又不強,在複製、移動、備份文件夾的時候,總要循環往復作屢次操做。如今咱們就向你介紹兩款強力複製備份軟件:Robocopy和XXCOPY,具體功能如何呢?這裏不需多說,下面的實例會讓你漸漸喜歡上它們。html
兩個軟件的安裝方式有所不一樣:從http://download.zol.com.cn/detail/10/91484.shtml處下載Robocopy並將其中的robocopy.exe複製到系統System32目錄便可,XXCOPY則須要從http://download.zol.com.cn/detail/10/91481.shtml處下載將其中的全部文件解壓到一文件夾下,而後雙擊install.bat文件安裝。本文將以Robocopy爲主,XXCOPY爲輔向你兩者在咱們平常電腦操做中的強大用途。服務器
使用Robocopy和XXCOPY有三種方法:一是按下Win+R,在「運行」窗口中直接輸入命令;二是按下Win+R後,在「運行」窗口中輸入CMD以啓動命令提示符,在命令提示符窗口中輸入命令;第三種是打開純文本編輯器如「記事本」,在其中輸入相應命令,在保存時輸入文件名爲「"文件名.bat"」(不須要全角雙引號,但半角引號必定不能少),生成批處理文件。雙擊批處理文件便可運行相應的命令。由於創建的批處理文件易於保存和修改,方便隨時調用,強烈推薦。less
本刊光盤中將本文全部實例的批處理文件集成到一個BAT文件中,你能夠直接拷貝生成一個新的BAT文件,直接修改源文件夾和目標文件夾地址便可。ssh
實例一:文件,想怎麼複製就怎麼複製編輯器
[實現效果]測試
隨時將源文件夾中的純文本(TXT)、Word文檔(DOC)還有BMP、TIF圖像文件複製到目標文件夾中,這是在「資源管理器」中直接拖放所作不到的。[簡單命令]
robocopy d:work e:ack *.txt *.doc *.bmp *.tif /sui
[參數講解]spa
將d:work文件下的TXT、DOC、BMP、TIF複製到e:ack文件夾,其餘文件則不復制。/s是表示包括除空文件下的全部子目錄,若是沒有則僅複製d:work下的文件而不包括子目錄。3d
[觸類旁通]server
(1)若是要將文件夾下的全部文件包括空文件夾所有複製到目標文件夾,命令爲:robocopy d:work e:ack /e
/e表示複製全部子目錄包括空文件夾。
(2)若是隻想複製兩個層級內的文件(再下的層級裏的文件則不拷貝),輸入命令:robocopy d:work e:ack /e /lev:2
/lev:2表示複製的層級,好比指定層級後d:worksoft(二級)下的文件會被複制,而d:worksoftoffice(三級)下的文件則不被複制。
實例二:垃圾文件不復制
[實現效果]在備份數據時,不可避免會將相似於*.bak、*.tmp的垃圾文件也複製到目標文件夾,用Robocopy能夠將咱們常常碰到的垃圾文件在拷貝時就清理出家門,從而生成一個乾乾淨淨的文件夾。
[簡單命令]
robocopy d:work e:ack /e /xf *.tmp *.bak
[參數講解]
/xf爲指定不執行復制操做的文件類型,後面的文件名支持通配符。若是參數爲/xd,則表示排除後面指定的文件夾。
實例三:大文件 我不要
[實現效果]
複製的時候,爲了節省時間,須要將一些大文件暫時不拷貝,等有空閒時間時,再執行復制操做不遲。
[簡單命令]
robocopy d:work e:ack /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:ack /e /xa:h
[參數講解]
Robocopy支持對屬性進行操做。上面的命令將複製源文件夾中所有文件,但所有具備隱藏屬性的文件將不會被複制。/xa:h,表示將具備隱藏屬性的排除出複製範圍,與之相對應的是/ia,表示包括只對擁有指定屬性的執行操做。屬性有R:只讀,A:存檔,S:系統,H:隱藏等幾種供選擇。
[觸類旁通]
(1)此外,Robocopy還有/a+、/a-等參數對文件屬性進行操做,分別表示在文件被拷貝後爲文件添加、去除某屬性。
robocopy d:work e:ack /ia:rs
表示只複製具備只讀和系統屬性的文件。
(2)robocopy c: d: /-a:rsh
表示將文件拷貝到D盤後,將拷貝生成的文件的只讀、系統、隱藏屬性去掉,以方便查看和修改。
實例十:NTFS權限跟着走
[實現效果]
在使用Windows 2000、Windows XP時,在多用戶使用一臺電腦時或管理服務器時,常常要爲文件夾指定用戶訪問和修改的權限(如圖1,須要分區爲NTFS)。不過,用通常的複製方式沒法保留咱們設置的權限,這在服務器備份時意味着咱們得從新設置用戶權限。不過,Robocopy可讓咱們在複製文件的時候,將屬性、用戶權限、全部者均可以一併複製到目標文件夾中。
[簡單命令]
robocopy d:work e:ack /e /copyall
[參數講解]
/copyall等於/copy:datsou,表示將全部源文件夾的信息複製到目標文件夾中,其中D:文件數據,A:文件屬性,T:時間信息,S:權限信息,O:全部者信息,U:審覈信息。
[觸類旁通]
若是源文件夾的權限被修改,須要一樣更新目標文件夾的權限時,咱們沒必要再重複複製,只需輸入
robocopy d:work e:ack /is /copy:sou
若是沒有/copy參數,默認爲/copy:dat,沒有後面三項的信息。
實例十一:集中備份到文件服務器
[實現效果]
但願天天可以把相應數據備份到文件服務器上,以避免數據丟失。
[簡單命令]
robocopy d:work \ctips_serverarticlesshare /e /copyall
[參數講解]
從中能夠看出,robocopy徹底支持文件服務器共享文件夾數據的拷貝。
[觸類旁通]
(1)若是咱們建立了一個環境變量,如定義%databack%爲\ctips_serverarticlesack,那隻要輸入相應的命令:robocopy d:work %databack% /e /copyall 便可把d:work下的文件所有備份到\ctips_serverarticlesack下。固然,若是\ctips_serverarticlesack空間不夠時,只要更換環境變量的值到其餘文件夾,如\ctips_serverarticles ewback,上述命令無需更改就能夠反數據拷貝到新的文件夾中。
(2)若是你只想把數據備份到共享文件夾中以你的機器名爲名字的共享文件夾中,使用xxcopy會更方便:xxcopy d:work \ctips_serverarticles/\$HOST\$ /e /yy 其中/\$HOST\$表示你的機器名,如你的機器名爲CTIPS_SYJ,那會把d:work 文件夾下的文件拷貝到\ctips_serverarticlesCTIPS_SYJ文件夾下。若是你的機器名爲CTIPS_MLB,那執行上述命令後就能夠把d:work 文件夾下的文件拷貝到\ctips_serverarticlesCTIPS_MLB文件夾下。因爲同局域網內的機器名字不會相同,執行上述命令後就能夠保證數據不會被拷貝到同一文件夾下。
實例十二:一動就備份
[實現效果]
有些工做內容很是重要,須要時時刻刻注意備份,但是咱們哪裏有這麼好記性和耐性呢?這事,仍是交給Robocopy來作吧。Robocopy能時時監視要備份的文件夾,只要文件夾修改到必定時間和程序,Robocopy就會當即開始備份。它會一直監視文件夾,除非用戶本身終止。
[簡單命令]
robocopy d:work e:ack /e /copyall /mot:1 /mon:2
[參數講解]
上述命令表示複製文件夾全部信息到目標文件夾並進行監視。執行此命令後,命令提示符窗口如圖2所示。一旦時間過了一分鐘,而且源文件夾至少有或2處以上的修改,Robocopy就會自動啓動另外一個進程,執行上述備份操做。Robocopy能監視源文件夾結構、文件和文件夾名稱、大小、最後修改時間,在這裏,甚至連屬性和權限等信息被修改時,Robocopy也會記爲修改次數。
/mot後接的是時間(分鐘),是指Robocopy執行操做的最短期;/mon後接的是最少文件修改個數。在監視過程當中,會自動記錄時間和修改的次數,只有同時符合以上兩個條件時,Robocopy纔開始執行,執行完成後,這兩個數據會自動清零,並從新開始監視文件夾,除非用戶關閉命令提示符窗口或按下Ctrl+Break鍵。
[觸類旁通]
若是你要開機就監視並備份相應文件夾,則能夠把上述命令放到「啓動」組中。
實例十三:不到時間不備份
[實現效果]
複製的過程總會佔用系統資源,若是能設置在本身不在電腦邊上的時候開始複製備份,就會方便得多。好比,天天5:50下班,但願下班後,到達6點時,Robocopy自動開始備份相應數據。
[簡單命令]
robocopy d:work e:ack /e /rh:1800-1830
[觸類旁通]
運行後,複製操做將會等待至指定時間開始(如圖3)。其中,RH格式爲/RH:hhmm-hhmm,指定Robocopy開始的時間段,在這個時間段外,拷貝會被暫停。時間爲24小時格式,4個數字長,從0000到2359,並且兩個數字不能相同。
實例十四:計劃任務備份
以上的到時間備份、監視文件夾備份方式,每次重啓系統會都會要從新執行以上命令,還遠遠不夠智能,若是能和Windows的計劃任務配合,全部問題就迎刃而解了。以咱們要在天天10:00自動調用Robocopy開始監視備份文件夾爲例,說一說計劃任務與Robocopy的攜手。
第一步:新建BAT文件
新建一個批處理文件autobak.bat,輸入以下命令
robocopy d:work e:ack /e /copyall /mot:1 /mon:2
第二步:建立計劃任務
選擇「開始→設置→控制面板」,雙擊「任務計劃」圖標。把autobak.bat批處理文件拖放到「任務計劃」窗口,而後雙擊新生成的autobak.bat圖標,在彈出窗口中設置其屬性。
第三步:設置開始時間
切換到「日程安排」標籤,單擊「任務計劃」下拉列表框,從中選擇「天天」,「開始時間」設置爲10:00,單擊「高級」能夠設置起止的日期(如圖4)。
經過上述設置後,到了設置的時間,機器就會自動備份執行批處理文件,自動備份並監視文件夾。
實例十五:清理文件也拿手
除了通常的複製功能,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」便可。
★查看幫助文件在本刊光盤中有Robocopy的幫助文檔,直接雙擊能夠查看。至於xxcopy,只須輸入「xxcopy /help /yy >>help.txt」,就能夠將其全部的命令和參數輸出到help.txt文件中。