robocopy 快速複製、指定條件複製小工具


  1. How to use
    1. 搭配 UNC 使用
  2. 應用情境
    1. UNC 應用情境
    2. 網頁伺服器的瘦身
    3. 參考資料

IT 工程環境常有複製檔案的需求,而如果有一些特定的複製條件時,例如只複製特定日期以後、特定格式、排除資料夾、只複製差異的檔案等,Windows 內建的 robocopy 就是一個好用的工具。

How to use

rem robocopy src dest fileName params
robocopy c:\src c:\dest * /xo /s /maxage:20200520 /xd \.git /mt:30 

參數說明

參數 說明
/xo 只複製 src 更新日期晚於 dest 的檔案
/s 包含子資料夾迭代,不包含空目錄
/e 包含子資料夾迭代,包含空目錄
/maxage:yyyymmdd 只複製等於或晚於此日期的檔案
/max:5000000 檔案大小限制最大 5 MB
/xd 排除指定的資料夾
/xf 過濾特定檔案
/mt:number 多執行緒進行複製
/mir 鏡像對稱複製 ⚠️ 危險,謹慎使用
/move 移動檔案 ⚠️ 非常危險,謹慎使用

注意

只使用 /mir 時,來源 (src) 的舊檔會蓋掉目標 (dest) 的新檔案,如果要混合鏡像但保留 dest 的新檔案時,則需要同時使用 /mir 與 /xo。

搭配 UNC 使用

rem pushd \\hostnmae 
rem pushd Z:\
pushd \\ip 
robocopy .\ c:\dest * /s
popd

⚠️robocopy 的來源路徑一定要設定成 .\ 位置,如果只設定 \ 會將來源設定為 C:\ 可能造成嚴重的錯誤。

應用情境

UNC 應用情境

From src ip copy files to d:\www except folder name startwith _ and file name endwith .config

pushd \\ip 
robocopy .\ d:\www * /mir /xd _* /xf *.config

/xd 排除資料夾名稱為 _ 開頭命名的
/xf 排名所有副檔名為 config 的檔案

網頁伺服器的瘦身

93

robocopy D:\WebSite D:\WebSiteMinified * /e
  /xf *.avi *.mp3 *.mp4 *.pdf *.odt *.ods *.xls *.xlsx *.docx *.doc *.ppt *.pptx *.wmv 

92

robocopy D:\WebSite D:\WebSiteMinified * /e
  /xf *.html

參考資料

MS Docs