2023年12月30日 星期六

[研究][.BAT]robocopy 把 F:\ 磁碟同步到 G:\HarddiskF 目錄

[研究][.BAT]robocopy 把 F:\ 磁碟同步到 G:\HarddiskF 目錄

2023-12-30

R.bat

robocopy F:\  G:\HardDiskF\ /MIR /FFT /Z  /W:1 /R:1 /MT:32 /XD  /XD F:\$RECYCLE.BIN /XF F:\pagefile.sys
attrib -s -h -r G:\HardDiskF

@REM robocopy 源路徑 目標路徑 /MIR /FFT /Z /XA:SH /W:1 /R:1 /MT:32 /LOG+:複製日誌.txt

@REM /XA:SH: 排除「隱藏」和「系統」檔案。

@REM 這些參數的解釋如下:

@REM /MIR: 鏡像複製。這將保持源和目標之間的完全同步,刪除目標上不存在的檔案和目錄。
@REM /FFT: 使用較低的精確時間。這將允許複製工具在一些情況下更快速。
@REM /Z: 在網絡上遇到中斷時支援重新開始。
@REM /XA:SH: 排除「隱藏」和「系統」檔案。
@REM /W:1: 設定重新嘗試等待時間為 1 秒。
@REM /R:1: 設定重新嘗試次數為 1 次。
@REM /MT:32: 使用多線程。這將允許同時處理多個檔案,提高複製速度。
@REM /LOG+:複製日誌.txt: 將操作日誌輸出到指定的日誌檔案,方便後續檢查。

@REM /MT[:n] :: 以 n 個執行緒執行多執行緒複製 (預設值為 8)。
@REM                        n 必須至少為 1,但不可以大於 128。
@REM                        此選項與 /IPG 和 /EFSRAW 選項不相容。
@REM                        使用 /LOG 選項重新導向輸出,以獲得更好的效能。

@REM /XD 排除目錄
@REM /XF 排除檔案

@REM robocopy source destination /mir /XF F:\pagefile.sys F:\pagefile2.sys /XD F:\$RECYCLE.BIN F:\$RECYCLE.BIN2

********************************************************************************

參數

G:\>robocopy

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  已啟動 : 2023年12月30日 上午 05:28:43
       簡單使用方式 :: ROBOCOPY source destination /MIR

             source :: 來源目錄 (drive:\path 或 \\server\share\path)。
        destination :: 目的地目錄  (drive:\path 或 \\server\share\path)。
               /MIR :: 鏡像完整的樹狀目錄。

    如需有關使用方式的詳細資訊,請執行 ROBOCOPY /?


****  /MIR 可以刪除檔案以及複製檔案!

G:\>

參數

G:\>robocopy /?

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  已啟動 : 2023年12月30日 上午 05:29:36
           使用方式 :: ROBOCOPY source destination [file [file]...] [options]

             source :: 來源目錄 (drive:\path 或 \\server\share\path)。
        destination :: 目的地目錄  (drive:\path 或 \\server\share\path)。
               file :: 要複製的檔案  (名稱/萬用字元: 預設值是 "*.*")。

::
:: 複製選項 :
::
                 /S :: 複製子目錄,但是空的子目錄例外。
                 /E :: 複製子目錄,包括空的子目錄。
             /LEV:n :: 只複製來源目錄的前 n 層。

                 /Z :: 在可重新啟動模式複製檔案。
                 /B :: 在備份模式複製檔案。
                /ZB :: 使用可重新啟動模式; 如果拒絕存取,則使用備份模式。
                 /J :: 使用無緩衝的 I/O 複製 (建議使用於大型檔案)。
            /EFSRAW :: 在 EFS RAW 模式複製所有加密檔案。

  /COPY:copyflag[s] :: 要為檔案複製什麼內容 (預設值是 /COPY:DAT)。
                       (複製旗標: D=資料、A=屬性、T=時間戳記)。
                       (S=安全性=NTFS ACL、O=擁有者資訊、U=稽核資訊)。


               /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 :: 慢速線路可用頻寬,封包之間的差距 (毫秒)。

                /SL :: 複製符號連結與目標。

            /MT[:n] :: 以 n 個執行緒執行多執行緒複製 (預設值為 8)。
                       n 必須至少為 1,但不可以大於 128。
                       此選項與 /IPG 和 /EFSRAW 選項不相容。
                       使用 /LOG 選項重新導向輸出,以獲得更好的效能。

 /DCOPY:copyflag[s] :: 對於目錄,要複製哪些項目 (預設值是 /DCOPY:DA)。
                       (複製旗標: D=資料、A=屬性、T=時間戳記)。

           /NODCOPY :: 不複製目錄資訊 (預設會執行 /DCOPY:DA)。

         /NOOFFLOAD :: 複製檔案 (不使用「Windows 複本卸載」機制)。

::
:: 檔案選取選項 :
::
                 /A :: 只複製已設定保存屬性的檔案。
                 /M :: 只複製包含保存屬性的檔案並重設。
    /IA:[RASHCNETO] :: 只包含附帶任何指定屬性的檔案。
    /XA:[RASHCNETO] :: 排除附帶任何指定屬性的檔案。

 /XF file [file]... :: 排除符合指定名稱/路徑/萬用字元的檔案。
 /XD dirs [dirs]... :: 排除符合指定名稱/路徑的目錄。

                /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 日後使用的檔案。
                       (如果 n < 1900 則 n = n 日,否則 n = YYYYMMDD 日期)。

                /XJ :: 排除連接點及符號連結。(根據預設值通常會包含在內)。

               /FFT :: 使用 FAT 檔案時間 (2 秒精細度)。
               /DST :: 補償 1 小時 DST 時差。

               /XJD :: 為目錄排除連接點及符號連結。
               /XJF :: 為檔案排除符號連結。

                /IM :: Include Modified files (differing change times).
::
:: 重試選項:
::
               /R:n :: 失敗複本的重試次數: 預設值是 1 百萬次。
               /W:n :: 重試之間等候時間: 預設值是 30 秒。

               /REG :: 將 /R:n 和 /W:n 儲存至登錄中,變成預設值。

               /TBD :: 等候共用名稱 [受到定義] (重試錯誤 67)。

               /LFSM :: 在低可用空間模式下操作,啟用複製暫停及繼續 (請見備註)。

               /LFSM :n [KMG] :: /LFSM,指定以 n [K:kilo,M:mega,G:giga] 位元組表示的界限大小。

::
:: 記錄選項:
::
                 /L :: 限清單 - 不複製、刪除任何檔案或加上戳記。
                 /X :: 報告所有其他檔案,不僅是這些選取的檔案而已。
                 /V :: 產生詳細資訊輸出,顯示略過的檔案。
                /TS :: 在輸出中包含來源檔案時間戳記。
                /FP :: 在輸出中包含檔案的完整路徑名稱。
             /BYTES :: 將大小列印成位元組。

                /NS :: 沒有大小 - 不記錄檔案大小。
                /NC :: 沒有類別 - 不記錄檔案類型。
               /NFL :: 沒有檔案清單 - 不記錄檔案名稱。
               /NDL :: 沒有目錄清單 - 不記錄目錄名稱。

                /NP :: 無進度 - 不顯示複製百分比。
               /ETA :: 顯示複製的檔案預估到達時間。

          /LOG:file :: 輸出狀態至記錄檔 (覆寫現有的記錄檔)。
         /LOG+:file :: 輸出狀態至記錄檔 (附加至現有的記錄檔)。

       /UNILOG:file :: 輸出狀態至記錄檔,變成 UNICODE (覆寫現有的記錄檔)。
      /UNILOG+:file :: 輸出狀態至記錄檔,變成 UNICODE (附加至現有的記錄檔)。

               /TEE :: 輸出至主控台視窗,以及記錄檔。

               /NJH :: 沒有工作標頭。
               /NJS :: 沒有工作摘要。

           /UNICODE :: 輸出狀態為 UNICODE。

::
:: 工作選項:
::
       /JOB:jobname :: 從命名的工作檔案取得參數。
      /SAVE:jobname :: 將參數儲存至命名的工作檔案
              /QUIT :: 處理命令列後結束 (檢視參數)。
              /NOSD :: 未指定來源目錄。
              /NODD :: 未指定目的地目錄。
                /IF :: 包含以下檔案。

::
:: 備註 :
::
       在磁碟區的根目錄上使用 /PURGE 或 /MIR 先前會導致
       robocopy 也對系統磁碟區資訊目錄內的檔案套用
       要求的作業。這種情況已經不再發生; 如果
       指定任一項,robocopy 將會略過複製工作階段的
       最上層來源和目的地目錄中具有該名稱的任何檔案或目錄。

       The modified files classification applies only when both source
       and destination filesystems support change timestamps (e.g., NTFS)
       and the source and destination files have different change times but are
       otherwise the same. These files are not copied by default; specify /IM
       to include them.

       Using /LFSM requests robocopy to operate in 'low free space mode'.
       In that mode, robocopy will pause whenever a file copy would cause the
       destination volume's free space to go below a 'floor' value, which
       can be explicitly specified by the LFSM:n[KMG] form of the flag.
       If /LFSM is specified with no explicit floor value, the floor is set to
       ten percent of the destination volume's size.
       Low free space mode is incompatible with /MT, /EFSRAW, /B, and /ZB.

G:\>

********************************************************************************

robocopy 的 /MIR 和 /XO 似乎無法共存,僅目的目錄存在的檔案,會被刪除,該用何參數 ?

ChatGPT

在Robocopy命令中,/MIR和/XO(/MOT)確實有一些互斥的特性,這可能導致一些不希望的行為,特別是當目的目錄中的文件不在源目錄中時。這是因為/MIR(鏡像)參數會將目的目錄與源目錄保持一致,而/XO(或/MOT)參數則會排除比指定的日期更舊的文件。

如果你想要同步源和目標目錄,但同時避免刪除目標目錄中不存在於源目錄的文件,你可以考慮使用/MIR和/XO的組合,但加上一個額外的參數,即/XX。

例如:

robocopy /MIR /XO /XX source_path target_path

這裡的/XX參數表示"exclude extra",即排除目標目錄中不存在於源目錄的額外文件。這樣一來,你可以同步源目錄和目標目錄,同時避免刪除目標目錄中不存在於源目錄的文件。

請注意,使用這種組合時仍然需要謹慎,因為/MIR參數本身會嘗試保持目標目錄與源目錄一致,而/XO則會排除比指定日期更舊的文件。確保你的使用情境適合這種同步方式,以免導致意外的數據損失。

(完)

相關

沒有留言:

張貼留言