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