星期四, 1月 09, 2020

Robocopy指令教學 | 使用Windows內建的Robocopy指令讓你快速備份和同步資料!

robocopy command教學

你還在使用 copy和 xcopy指令嗎?其實 Windows本身就有一個內建的超強複製指令叫 Robocopy,就能讓你快速備份和同步資料。 

Robocopy指令早期在 Windows 2003 Server上必需安裝 Windows Resource Kits。但現在在Windows Vista /7 /8 /10 已經內建 Robocopy指令。

你可以開啟命令提示字元 cmd,輸入「robocopy /?」查詢 Robocopy指令使用方式:

Robocopy-command

以下我們實際來做個範例:

目標是同步資料並將權限複製到目標端,並產生一個檔名為當天日期的log檔放置於c:\robocopy_log\下
首先找一台PC or 伺服器,需有權限讀寫”來源”和”目的”端
將來源mapping 成網路磁碟 S
net use S:\\192.168.0.2

將目的mapping 成網路磁碟 T
net use T:\\192.168.0.3

【範例一】同步S槽和T槽,並輸出以日期命名的log檔

robocopy S:\ T:\ /R:0 /W:0 /E /TEE /NFL /NDL /XO /PURGE /COPYALL /LOG+:C:\robocopy_log\%date:~0,4%%date:~5,2%%date:~8,2%.log

【範例二】同步S槽和T槽下的Test資料匣,並輸出以日期和時間命名的log檔

robocopy S:\Test T:\Test /MIR /COPYALL /NDL /NFL /MT:100 /LOG+:C:\robocopy_log\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.log

若上方範例亂碼,請自行下載範例:

👉範例一 範例二

以下是比較常用的參數說明

/R:n             失敗複本的重試次數:預設值是 1 百萬次。
/W:n            重試之間等候時間:預設值是 30 秒。
/E:               複製子目錄,包括空的子目錄。
/TEE:           輸出至主控台視窗,以及記錄檔。
/NFL:           沒有檔案清單 - 不記錄檔案名稱。
/NDL:           沒有目錄清單 - 不記錄目錄名稱。
/XO:             排除較舊的檔案。
/PURGE:     刪除來源已經不存在的目的地檔案/目錄。
/COPYALL:  複製所有檔案資訊(相當於 /COPY:DATSOU)。
/LOG+:file:   輸出狀態至記錄檔 (附加至現有的記錄檔)。
/MIR:            鏡像樹狀目錄 (相當於 /E 加 /PURGE)。
/MT[:n]:        以 n個執行緒執行多執行緒複製 (預設值為 8)。
                       n 必須至少為 1,但不可以大於 128。
                       此選項與 /IPG 和 /EFSRAW 選項不相容。
                       使用 /LOG 選項重新導向輸出,以獲得更好的效能。

你可以將下方存成BAT檔執行:

@echo off
net use S: \\192.168.0.2
net use T: \\192.168.0.3
robocopy S:\ T:\ /R:0 /W:0 /E /TEE /NFL /NDL /XO /PURGE /COPYALL /LOG+:C:\robocopy_log\%date:~0,4%%date:~5,2%%date:~8,2%.log
net use S: /delete
net use T: /delete
@echo "請確認log file是否有錯誤"
pause

實際測試範例參考:

Robocopy教學

▼延伸閱讀

👉 使用 xcopy | robocopy 「複製目錄結構不含檔案」的兩種作法

👉 Windows Command 教學 | 教你使用forfiles 尋找及刪除過期的檔案

👉 產生樹狀目錄結構圖超簡單,使用Windows Command 「tree」指令來執行

👉 使用「dsquery Command」來查詢及匯出 AD使用者帳號


▼參考來源:

👉 iThome
👉 MS docs
👉 blog.miniasp.com
👉 blog.miniasp.com-2

~若您覺得本篇有幫助到你,也請幫忙按讚或♡分享出去~

沒有留言:

張貼留言