執行 robocopy /? 可查看可使用的參數。
bat 批次檔範例:(同步遠端的網路資料夾,同步的指令在最後一行)
@echo off REM 依日期設定 log 檔名 for /f "tokens=1-4 delims=-/ " %%i IN ("%date%") DO ( set year=%%i set month=%%j set day=%%k ) SET fname=%year%-%month%-%day% SET fname=%fname: =0% SET fname=D:\web-sync\log\%fname%.txt REM 刪除網路資料夾 \\192.168.0.123\test 的連接(這邊註解不執行) REM net use \\192.168.0.123\test /d REM 建立網路資料夾 \\192.168.0.123\test 的連接,xyz為帳號,1234為密碼 net use \\192.168.0.123\test /user:192.168.0.123\xyz 1234 REM 1.使用 robocopy 將遠端 \\192.168.0.123\test 的資料夾同步到 C:\aaa REM 2./MIR,複製子目錄(含空目錄),刪除已經不存在的目錄、檔案 REM 3./R:n,失敗複本的重試次數: 預設值是 1 百萬次。 REM 4./LOG+:檔案,將 log 記錄到檔案(附加模式) REM 5./XF,排除不同步的檔案 robocopy "\\192.168.0.123\test" "C:\aaa" /MIR /R:0 /LOG+:%fname% /XF *.bat
其他:
- 若有防火牆,須開放的 port 為 SMB 的 445 (TCP)
- robocopy 無法複製被鎖定的檔案,設定 /R:0 時,當來源檔案使用中被鎖定 lock 住時,可略過該檔案,節省同步時間。
參考:
Using robocopy and excluding multiple directories
Windows Networking - Port 445 Only?
开放防火墙端口实现Robocopy文件复制
Robocopy Port Problem
ROBOCOPY.exe (XP Resource Kit/Standard Windows 7 command)
沒有留言:
張貼留言