2011-10-31
Robocopy和xxcopy全掌握(一) from史萊姆論壇

制作備份雙友鄰精彩5例-Robocopy和xxcopy全掌握

http://forum.slime.com.tw/thread159551.html
--------------------------------------------------------------------------------

 Windows提供的複製操作功能實在是太過簡陋,可設置性又不強,在複製、移動、備份檔案夾的時候,總要循環往復做多次操作。現在我們就向你介紹兩款強力複製制作備份軟體:Robocopy( NT4時就有,在資源KiT光碟中)和XXCOPY,具體功能如何呢?這裡不需多說,下面的實例會讓你漸漸喜歡上它們。

  XXCOPY小檔案

軟體版本:2.85.3 軟體大小:243KB
軟體性質:免費軟體 適用平台:Windows 9x/Me/NT/2000/XP

  Robocopy小檔案

軟體版本:XP010 軟體大小:80KB
軟體性質:免費軟體 適用平台:Windows 9x/Me/NT/2000/XP

  兩個軟體的安裝方式有所不同:在本刊光碟複製Robocopy到系統System32目錄即可,XXCOPY則需要雙按install.bat安裝。本文將以Robocopy為主,XXCOPY為輔向你二者在我們日常電腦操作中的強大用途。

  使用Robocopy和XXCOPY有三種方法:一是按下Win+R,在「執行」視窗中直接輸入指令;二是按下Win+R後,在「執行」視窗中輸入CMD以啟動命令提示字元,在命令提示字元視窗中輸入指令;第三種是開啟純文本編輯器如「記事本」,在其中輸入相應指令,在儲存時輸入檔案名為「"檔案名.bat"」(不需要全形雙引號,但半形引號一定不能少),產生批次處理文件。雙按批次處理文件即可執行相應的指令。因為建立的批次處理文件易於儲存和修改,方便隨時使用,強烈推薦。

  本刊光碟中將本文所有實例的批次處理文件整合到一個BAT文件中,你可以直接拷貝產生一個新的BAT文件,直接修改源資料夾和目標資料夾位址即可。

實例一:文件,想怎麼複製就怎麼複製

  [實現效果]

  隨時將源資料夾中的純文本(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碟後,將拷貝產生的文件的只讀、系統、隱藏內容去掉,以方便檢視和修改。

kagura2011-10-31 14:48:49 發表
最後編輯時間 : 2011-10-31 14:51:52
分享到Plurk 分享到Twitter 分享到推推王 分享到facebook
看更多日記
名稱 :

暱稱:

電子信箱:

內容 :
*限200字(目前 0 字)
驗證碼 :