Robocopy 指令範例參考 (MIR問題很多,小心使用) @ 數位世界 :: 隨意窩 Xuite日誌
  • 關鍵字
    1. 沒有新回應!





  • Powered by Xuite
    201406232102Robocopy 指令範例參考 (MIR問題很多,小心使用)

    http://basuya.blogspot.tw/2009/12/robocopy.html

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

     

    [實現效果]
    隨時將源資料夾中的純文本(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是指最近訪問時間,比這個時間新的文件將不被複製。

     

    實例五:完全複製 (小弟愛用)

     

    [實現效果]
    我 們一般採取的複製方式預設值是增量複製,即根據文件的大小、修改時間將源資料夾裡的內容向目標資料夾複製,久而久之,目標資料夾裡就可能存在大量源件夾裡 早已經移除且無用的文件和資料夾。如果要讓制作備份完全相同,即拷貝時移除在目標資料夾裡存在但源資料夾裡並沒有的文件。

    [簡單指令]
    robcopy d:\work e:\look /mir

    [參數講解]
    /mir的作用等同於/purge /e,/purge表示清理目標資料夾有而源資料夾裡沒有的文件(夾)。通過這個指令,能保證源資料夾和目標資料夾結構與文件完全相同。這在新增映射制作備份時,非常有用。

     

    實例六:移動文件

     

    [實現效果]
    我們前面講的都是複製,如果我們要將資料夾移動到目標資料夾,如何操作呢?

    [簡單指令]
    robocopy d:\work e:\look /move /e

    [參數講解]
    其中,/move表示移動。

     

    實例七:隱藏文件我不要

     

    [實現效果]
    在預設值狀態下,隱藏文件是並不顯示的,但在複製的程序中,它還會隨著資料夾一起被複製。可不可以將這些隱藏文件排除在複製範圍之外呢?

    [簡單指令]
    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碟後,將拷貝產生的文件的只讀、系統、隱藏內容去掉,以方便檢視和修改。

     

     

    ■ 如果需求就是差異化備份,那常用的參數為:
    robocopy  來源  目的  /e  /xo  /purge
    /e :代表複製子資料夾,含空的資料夾
    /xo :排除較舊的檔案,意思是來源端沒有比目的端新時,就不複製(差異化備份,很重要的參數)
    /purge :刪除來源中,不再存在的資料夾或檔案(這個也是差異化備份,很重要的參數)
    .
    ■ 範例架構  (將E槽的\123資料夾 備份到 U槽的\456資料夾):
    robocopy E:\123 U:\456 /MIR /MT:100

    後面的"/MIR" (為備份模式)以來源為主,對目的刪除多餘檔案 (該指令只會改寫有異動的檔案!!對於電腦上班族儲存檔案極為方便!!)
    "/MT" 指的是通道數量,一般而言設定100就夠了。另還可替換以下功能:
    "/E" (複製模式) 包含子目錄一併複製
    "/S" (複製模式) 包含子目錄一併複製,但空目錄除外
    "/MOVE" (移動模式) 移動來源到目的,並刪除來源
    .
    ■ 把硬碟 E: 的全部資料 (含資料夾與檔案) 複製到硬碟 U:,保留檔案時間,也不刪除 E: 上的資料。組合出來的參數如下:
    .
    robocopy E:\ U:\ /e /dcopy:t /xo /xa:sh /xj /unicode /eta
    .
    Windows 系列的指令沒有大小寫之分。這些參數所代表的如下:
    .
    E:\ :: 檔案來源 硬碟 E:
    U:\ :: 檔案目的地 硬碟 U:
    /e :: 複製所有的子資料夾,包含空的資料夾。
    /dcopy:t :: 保留所有檔案與資料夾的時間戳記。
    /xo :: 如果已有相同的檔案,且時間相同或較舊就跳過。注意不是零 -:)
    /xa:sh :: 跳過屬性為 s (系統) 與 h (隱藏) 的檔案。因為是複製整個硬碟,預設會連 Windows 隱藏的系統檔都複製過去,所以要排除。
    /xj :: 跳過 NTFS junction 檔案,關於 junction 請參考這篇文章。
    /unicode :: 畫面上的進度資訊以 unicode 顯示,若是操作非中文及英文檔名,這參數可以正確顯示名稱。有無開啟並不影響檔案複製、移動等操作,只是差在畫面顯示正不正確。
    /eta :: 顯示預計完成時間。
    .
    ps. 這個指令跟其他的 dos / windows 指令不一樣的地方是檔案名稱並不是接在資料夾後面的。
    .
    ■另要複製 C:\MyDocuments 底下的 .txt、.bmp、.jpg 到 U:\BackUp,那指令要組合成…
    .
    robocopy C:\MyDocuments\ U:\BackUp\ *.txt *.bmp *.jpg
    .
    反過來,如不想複製這些檔案,需加上參數 /xf
    .
    robocopy C:\MyDocuments\ U:\BackUp\ /xf *.txt *.bmp *.jpg

     

    @echo off
    robocopy "D:\test001"  "\\server_name\test001"  /E /XO /R:3 /NFL /NDL /NJH /MT:50
    pause

    參數說明:
     /MIR     等於 /E 加上 /PURGE    聽說這個參數有問題,小心使用
    /E     複製子目錄,包括空的子目錄 
    /PURGE     如果目的端有來源端不存在的檔案或目錄,則刪除目的端的檔案      聽說這個參數有問題,小心使用
    /R      失敗複本的重試次數
    /NFL    畫面上不會秀出備份檔案的明細
     /NDL    畫面上不會秀出備份目錄的明細
    /NJH     畫面上不會秀出工作標頭
    /MT     以 n 個執行緒執行多執行緒複製,n 必須至少為 1,但不可以大於 128

     

     

     

    參考出處:  http://blog.db.idv.tw/2009/09/robocopy.html

    Microsoft在Windows Server 2003 時,出了一個ResourceKit的Tools,裡面大約有126個命令。(這個工具包,同時適用於Windows 2000 及 Windows XP 及後面Win32作業系統)

    Robocopy除了是個資料夾/檔案的複製指令外,基本上已經作到了「同步」的功能及滿足「差異化備份」的需求。
    舉個例,在 A 資料夾下,有 A1.txt、A2.txt、A3.txt 等三個檔案,透過 robocopy 複製一份到 B 資料夾。
    當A1.txt有修改時,只要再次透過 robocopy 即可同步到 B ,並且不用重新複製 A2.txt 及 A3.txt 。
    如果 A2.txt 刪除了,也可以透過 robocopy 去作同步的動作,不需自己再手動去刪除 B 資料夾下的 A2.txt。

    這樣的同步有什麼好處?在少量檔案時,可能很難發現他的強大,但是如果檔案數是幾千、幾萬個時,且需要固定時間的備份到另一個地方(如備份硬碟),這時候robocopy的「差異化備份」就可以派上用場,對整體備份而言,提昇不少效能。

    如果需求就是差異化備份,那常用的參數為:
    robocopy 來源 目的 /e /xo /purge
    /e :代表複製子資料夾,含空的資料夾
    /xo :排除較舊的檔案,意思是來源端沒有比目的端新時,就不複製(差異化備份,很重要的參數)
    /purge :刪除來源中,不再存在的資料夾或檔案(這個也是差異化備份,很重要的參數)

    列出完整的參數說明: 可以用「robocopy /?」 取得說明

    下面列出完整的參數說明: (也可以用「robocopy /?」 取得說明)

    ------------------------------------------------------------------------------
                  Usage :: ROBOCOPY source destination [file [file]...] [options]
                        source 來源:: 原始目錄(驅動器:\路徑或\\伺服器\共用\路徑)。
                    destination目錄:: 目標目錄(驅動器:\路徑或\\伺服器\共用\路徑)。
                     file 文件:: 要複製的檔(名稱/萬用字元: 默認為 "*.*")。
    ------------------------------------------------------------------------------
    複製選項:
    ------------------------------------------------------------------------------
                     /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),以釋放低速線路上的頻寬。
    ------------------------------------------------------------------------------
    檔選擇選項:
    ------------------------------------------------------------------------------
                     /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 :: 包含以下檔。
    

     

    沒有上一則|日誌首頁|沒有下一則
    回應